:root{color:#2a2130;background:#fff1f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--pink: #ff4f9a;--deep-pink: #c92f75;--coral: #ff735c;--gold: #ffd166;--mint: #59d9b2;--ink: #2a2130}*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,textarea,select{font:inherit}.app{position:relative;min-height:100vh;overflow:hidden;background:linear-gradient(145deg,#ffffffb8,#fff0 34%),linear-gradient(105deg,#ffd16621,#ffd16600 38%),linear-gradient(135deg,#fff1f6,#f8bfd6 48%,#fff7ed);isolation:isolate}.app:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;content:"";background-image:linear-gradient(115deg,transparent 0 48%,rgba(255,255,255,.22) 48% 49%,transparent 49% 100%),linear-gradient(25deg,transparent 0 46%,rgba(156,31,91,.08) 46% 47%,transparent 47% 100%);background-position:0 0,34px 22px;background-size:190px 190px,240px 240px;opacity:.72;pointer-events:none}.main-page{animation:page-arrive .68s ease-out both}.intro-screen{position:relative;display:grid;place-items:center;min-height:100svh;padding:clamp(76px,8vw,104px) clamp(18px,4vw,56px);overflow:hidden;background:linear-gradient(rgba(255,255,255,.48) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.48) 1px,transparent 1px),linear-gradient(145deg,#fff3ee,#ffe5ec 48%,#fff8f2);background-size:28px 28px,28px 28px,auto}.intro-screen:before,.intro-screen:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:radial-gradient(circle at 16% 22%,rgba(255,105,145,.16),transparent 28%),radial-gradient(circle at 84% 72%,rgba(255,209,102,.17),transparent 28%);opacity:1;pointer-events:none}.intro-screen:after{inset:auto 0 0;height:32%;background:linear-gradient(180deg,#fff3ee00,#ffffff75)}.intro-screen.is-leaving{animation:intro-exit .62s cubic-bezier(.7,0,.84,0) forwards}.confetti-layer,.balloon-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.confetti-layer span{position:absolute;top:-34px;left:var(--x);width:6px;height:16px;border-radius:2px;background:hsl(calc(var(--piece) * 22 + 335) 68% 60%);box-shadow:0 0 12px #ffffff4d;opacity:.44;animation:confetti-drop var(--duration) linear infinite;animation-delay:var(--delay)}.confetti-layer span:nth-child(3n){width:8px;height:8px;border-radius:50%}.confetti-layer span:nth-child(4n){width:5px;height:20px;background:#ffffffdb}.confetti-layer span:nth-child(5n){background:#ffd166c7}.balloon-layer span{position:absolute;bottom:-170px;left:var(--x);width:54px;height:70px;border-radius:52% 48% 50% 50%;background:radial-gradient(circle at 32% 25%,rgba(255,255,255,.88) 0 8px,transparent 9px),hsl(calc(var(--balloon) * 38 + 330) 70% 70%);box-shadow:inset -12px -16px 24px #80225324;opacity:.16;animation:balloon-rise 12s ease-in-out infinite;animation-delay:var(--delay)}.balloon-layer span:before{position:absolute;top:81px;left:calc(50% - 1px);width:2px;height:118px;content:"";background:#5513313d}.balloon-layer span:after{position:absolute;top:76px;left:calc(50% - 7px);width:14px;height:12px;border-radius:3px 3px 8px 8px;content:"";background:inherit}.bunting{position:absolute;top:clamp(16px,3vw,30px);z-index:2;display:flex;gap:8px;align-items:flex-start;pointer-events:none}.bunting:before{position:absolute;top:-4px;left:-18px;right:-18px;height:2px;content:"";background:#522e3a61;transform:rotate(-3deg)}.bunting span{width:0;height:0;border-top:28px solid #e95c88;border-left:13px solid transparent;border-right:13px solid transparent;filter:drop-shadow(0 6px 8px rgba(128,34,83,.14));transform-origin:top center;animation:flag-sway 2.9s ease-in-out infinite}.bunting span:nth-child(2n){border-top-color:#f6b1c6}.bunting span:nth-child(3n){border-top-color:#f7c46b}.bunting span:nth-child(4n){border-top-color:#c95c82}.bunting-left{left:-8px;transform:rotate(-5deg)}.bunting-right{right:-8px;transform:rotate(5deg)}.intro-layout{position:relative;z-index:2;display:grid;width:min(100%,1120px);grid-template-columns:minmax(0,.95fr) minmax(330px,.8fr);gap:clamp(34px,7vw,86px);align-items:center}.intro-copy{display:grid;gap:24px;justify-items:start;animation:title-enter .9s cubic-bezier(.16,1,.3,1) both}.intro-heading{display:grid;gap:14px;justify-items:start}.intro-kicker{margin:0;color:#522e3ab8;font-size:.82rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.intro-title{display:grid;gap:2px;justify-items:start;margin:0;color:#fff;font-size:clamp(4.1rem,9vw,7.6rem);font-weight:950;line-height:.86;letter-spacing:0;text-shadow:0 4px 0 rgba(82,46,58,.72),0 16px 34px rgba(128,34,83,.18)}.intro-title span{display:block}.intro-title span:last-child{color:#e95c88;text-shadow:0 4px 0 rgba(82,46,58,.76),0 16px 34px rgba(128,34,83,.18)}.intro-actions{display:grid;gap:16px;justify-items:start}.intro-button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.gift-message-trigger{display:inline-flex;align-items:center;justify-content:center;min-width:154px;min-height:52px;padding:13px 24px;border:2px solid rgba(82,46,58,.78);border-radius:999px;background:#ffffffc7;color:#9c1f5b;cursor:pointer;box-shadow:0 10px 24px #8022531f,0 5px #522e3a1f;font-size:.98rem;font-weight:850;line-height:1;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;-webkit-tap-highlight-color:transparent}.gift-message-trigger:hover{filter:brightness(1.04) saturate(1.06);transform:translateY(-3px);box-shadow:0 14px 28px #80225329,0 8px #522e3a1a}.gift-message-trigger:active{transform:translateY(2px);box-shadow:0 8px 18px #8022531f,0 2px #522e3a21}.gift-message-trigger:focus-visible{outline:4px solid rgba(255,255,255,.9);outline-offset:5px}.intro-subtitle{display:inline-flex;min-height:42px;align-items:center;justify-content:center;max-width:530px;margin:0;padding:9px 18px;border:1px solid rgba(82,46,58,.14);border-radius:999px;background:#ffffffa8;color:#522e3ac7;font-size:.98rem;font-weight:850;line-height:1;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 10px 24px #80225314;animation:subtitle-enter .9s .12s cubic-bezier(.16,1,.3,1) both}.start-button{position:relative;display:inline-flex;min-width:154px;min-height:52px;align-items:center;justify-content:center;gap:10px;padding:13px 24px;border:2px solid rgba(255,255,255,.76);border-radius:999px;overflow:hidden;background:linear-gradient(90deg,#e95c88,#f7b267 55%,#7bdcb5);color:#fff;cursor:pointer;font-size:.98rem;font-weight:800;line-height:1;box-shadow:0 16px 32px #8022532e,0 5px #522e3a2b;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;animation:start-arrive .9s .22s cubic-bezier(.16,1,.3,1) both}.start-button:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:linear-gradient(110deg,transparent 0 32%,rgba(255,255,255,.68) 46%,transparent 60%);transform:translate(-110%);animation:start-shine 2.4s ease-in-out infinite}.start-button span,.start-button svg{position:relative;z-index:1}.start-button:hover{filter:saturate(1.08) brightness(1.04);transform:translateY(-4px) scale(1.03);box-shadow:0 24px 45px #80225352,inset 0 0 0 2px #ffffffc2}.start-button:active{transform:translateY(0) scale(.97)}.start-button:focus-visible{outline:4px solid rgba(255,255,255,.86);outline-offset:5px}.portrait-stage{position:relative;display:grid;min-height:490px;place-items:center;animation:portrait-enter .9s .12s cubic-bezier(.16,1,.3,1) both}.gift-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:clamp(22px,5vw,64px);overflow-y:auto;perspective:1600px;animation:gift-overlay-in .26s ease-out both}.gift-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;border:0;background:#1c1419bd;cursor:pointer;animation:gift-backdrop-in .26s ease-out both}.gift-close-button{position:fixed;top:clamp(18px,3vw,34px);right:clamp(18px,3vw,34px);z-index:3;display:inline-grid;width:52px;height:52px;place-items:center;border:0;border-radius:50%;background:#ffffff1f;color:#fff;cursor:pointer;transition:background .18s ease,transform .18s ease;-webkit-tap-highlight-color:transparent}.gift-close-button:hover{background:#ffffff38;transform:rotate(6deg) scale(1.04)}.gift-close-button:focus-visible{outline:4px solid rgba(255,255,255,.72);outline-offset:4px}.gift-book-scene{position:relative;z-index:2;width:min(100%,960px);transform-style:preserve-3d}.gift-book{position:relative;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-height:min(70vh,580px);border-radius:8px;filter:drop-shadow(0 26px 34px rgba(12,8,10,.32));transform-origin:center center;transform-style:preserve-3d;animation:gift-book-arrive .84s cubic-bezier(.16,1,.3,1) both}.gift-book:before{position:absolute;top:12px;bottom:12px;left:50%;z-index:4;width:16px;content:"";background:linear-gradient(90deg,#5a223c6b,#fff3,#5a223c47);border-radius:999px;transform:translate(-50%)}.gift-page{position:relative;display:grid;align-content:center;min-height:520px;padding:clamp(28px,5vw,54px);overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.2),transparent 38%),#f1618a;color:#fff;box-shadow:inset 0 0 0 1px #ffffff38,inset 0 0 34px #7f1c4529}.gift-page-left{justify-items:center;border-radius:8px 0 0 8px;text-align:center;transform-origin:right center;animation:gift-left-page-open .9s .12s cubic-bezier(.16,1,.3,1) both}.gift-page-right{align-content:start;border-left:10px solid rgba(255,255,255,.78);border-radius:0 8px 8px 0;transform-origin:left center;animation:gift-right-page-open .9s .12s cubic-bezier(.16,1,.3,1) both}.gift-page-shine{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 0 30%,rgba(255,255,255,.22) 42%,transparent 55%),radial-gradient(circle at 80% 18%,rgba(255,209,102,.35),transparent 18%);opacity:.68;pointer-events:none}.gift-book-portrait{position:relative;z-index:1;width:116px;aspect-ratio:1;margin-bottom:24px;border:5px solid rgba(255,255,255,.88);border-radius:50%;overflow:hidden;background:#ffffff73;box-shadow:0 14px 28px #59183838}.gift-book-portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 16%;transform:scale(1.16)}.gift-small-label{position:relative;z-index:1;margin:0 0 10px;color:#ffffffd1;font-size:.82rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.gift-page h2{position:relative;z-index:1;margin:0;color:#fff;font-size:clamp(2rem,5vw,3.5rem);font-weight:900;line-height:.95;letter-spacing:0;text-shadow:0 8px 24px rgba(93,29,61,.22)}.gift-page-note{position:relative;z-index:1;margin-top:26px;color:#ffffffe0;font-size:clamp(1.6rem,4vw,3rem);font-weight:900;line-height:.95;text-shadow:0 0 18px rgba(255,255,255,.48)}.gift-message-text{position:relative;z-index:1;max-width:42rem;margin:28px 0 0;color:#fffffff0;font-size:clamp(1rem,1.8vw,1.2rem);font-weight:650;line-height:1.72;text-wrap:pretty}.portrait-stage:before{position:absolute;width:min(86vw,410px);aspect-ratio:1;border:3px solid rgba(82,46,58,.78);border-radius:50%;content:"";background:radial-gradient(circle at 70% 16%,rgba(255,229,93,.88) 0 22px,transparent 23px),linear-gradient(145deg,#ffffff52,#ffa0bc3d);box-shadow:0 22px 50px #80225329,inset 0 0 0 10px #ffffff8a}.portrait-frame{position:relative;z-index:2;width:min(72vw,330px);aspect-ratio:1;border:6px solid rgba(82,46,58,.86);border-radius:50%;overflow:hidden;background:#fff8f3;box-shadow:0 18px 34px #80225330,inset 0 0 0 8px #ffffffd6}.portrait-frame img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 16%;transform:scale(1.16)}.portrait-fallback{display:grid;width:100%;height:100%;place-items:center;background:radial-gradient(circle at 50% 36%,rgba(255,255,255,.74),transparent 30%),linear-gradient(145deg,#f8bfd6cc,#fff4ece0)}.portrait-balloons span{position:absolute;z-index:1;width:48px;height:62px;border:3px solid rgba(82,46,58,.72);border-radius:50% 50% 48% 52%;background:radial-gradient(circle at 33% 24%,rgba(255,255,255,.74) 0 7px,transparent 8px),#f56b93;animation:small-balloon 3.4s ease-in-out infinite;animation-delay:calc(var(--balloon) * -.38s)}.portrait-balloons span:after{position:absolute;top:58px;left:50%;width:2px;height:78px;content:"";background:#522e3a47}.portrait-balloons span:nth-child(1){left:6%;top:18%}.portrait-balloons span:nth-child(2){right:0;top:32%;background:radial-gradient(circle at 33% 24%,rgba(255,255,255,.74) 0 7px,transparent 8px),#ff7ca2;animation-delay:-1.2s}.portrait-balloons span:nth-child(3){right:20%;top:5%;width:44px;height:56px;background:radial-gradient(circle at 33% 24%,rgba(255,255,255,.74) 0 7px,transparent 8px),#f7e35e;animation-delay:-.4s}.portrait-balloons span:nth-child(4),.portrait-balloons span:nth-child(5){display:none}.smile-badge{position:absolute;z-index:3;left:4%;bottom:22%;display:grid;width:76px;height:76px;place-items:center;border:3px solid rgba(82,46,58,.78);border-radius:50%;background:#fff;box-shadow:0 12px 24px #8022531f}.smile-badge span{position:relative;width:34px;height:24px;border:solid rgba(82,46,58,.82);border-width:0 0 3px;border-radius:0 0 40px 40px}.smile-badge span:before,.smile-badge span:after{position:absolute;top:2px;width:5px;height:5px;border-radius:50%;content:"";background:#522e3ad1}.smile-badge span:before{left:4px}.smile-badge span:after{right:4px}.photo-header{position:relative;min-height:clamp(380px,45vw,560px);padding:clamp(18px,3vw,34px);overflow:hidden;isolation:isolate}.photo-header:after{position:absolute;inset:auto 0 0;height:42%;content:"";background:linear-gradient(180deg,#fff1f600,#fff1f6f5);z-index:-1}.brand{position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid rgba(201,47,117,.2);border-radius:999px;background:#fffc;color:var(--deep-pink);font-size:.92rem;font-weight:750;box-shadow:0 12px 35px #9e296433;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.photo-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;grid-template-columns:1.12fr 1.12fr .88fr .88fr .88fr;grid-template-rows:minmax(0,1fr);gap:clamp(10px,1.8vw,22px);padding:clamp(64px,8vw,92px) clamp(16px,4vw,56px) clamp(30px,6vw,70px);transform:rotate(-.8deg) scale(1.01)}.photo-card{position:relative;min-width:0;min-height:0;margin:0;padding:0;height:100%;border:6px solid rgba(255,255,255,.9);border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 18px 45px #751b4e2e,0 0 0 1px #ff4f9a14;cursor:pointer;transform:translateZ(0);transition:box-shadow .22s ease,filter .22s ease,transform .22s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}.photo-card:hover{filter:saturate(1.08) brightness(1.04);transform:translateY(-8px) rotate(.75deg);box-shadow:0 26px 56px #751b4e40,0 0 0 1px #ffffffb8}.photo-card:active{transform:translateY(-2px) scale(.97)}.photo-card:focus-visible{outline:4px solid rgba(255,209,102,.86);outline-offset:5px}.photo-card.is-popped{z-index:4;animation:photo-pop .85s cubic-bezier(.16,1,.3,1)}.photo-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .65s cubic-bezier(.16,1,.3,1)}.photo-placeholder{display:block;width:100%;height:100%;background:radial-gradient(circle at 28% 22%,rgba(255,255,255,.64),transparent 26%),linear-gradient(145deg,#f8bfd6b8,#fff7edeb)}.photo-card:hover img,.photo-card.is-popped img{transform:scale(1.08)}.photo-shine{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 0%,transparent 34%,rgba(255,255,255,.7) 47%,transparent 60%,transparent 100%);opacity:0;transform:translate(-110%);pointer-events:none}.photo-card.is-popped .photo-shine{animation:shine-sweep .78s ease-out}.spark-burst{position:absolute;top:50%;right:50%;bottom:50%;left:50%;width:8px;height:8px;pointer-events:none}.spark-burst i{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:2px;background:var(--gold);box-shadow:0 0 0 2px #fff9;opacity:0;transform:rotate(calc(var(--spark) * 36deg)) translateY(-14px) scale(.4);animation:spark-fly .76s cubic-bezier(.16,1,.3,1) forwards}.spark-burst i:nth-child(3n+1){background:#fff}.spark-burst i:nth-child(3n+2){background:var(--mint)}.spark-burst i:nth-child(4n){width:6px;height:14px;border-radius:999px}.photo-1{grid-column:1 / 3;grid-row:1}.photo-2{grid-column:3;grid-row:1}.photo-3{grid-column:4;grid-row:1}.photo-4{grid-column:5;grid-row:1}.dashboard{display:grid;place-items:center;min-height:calc(100vh - clamp(380px,45vw,560px));padding:clamp(28px,7vw,84px) clamp(18px,5vw,72px) clamp(46px,7vw,88px)}.birthday-panel{width:min(100%,980px);padding:clamp(42px,8vw,92px) clamp(20px,7vw,86px);border:1px solid rgba(201,47,117,.16);border-radius:8px;background:linear-gradient(90deg,#9c1f5b1a,#ffd1661f),#ffffffd1;box-shadow:0 24px 72px #80225329;text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.icon-row{display:flex;justify-content:center;gap:12px;margin-bottom:clamp(18px,3vw,28px)}.icon-row span{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;color:#fff;box-shadow:0 12px 26px #44263029}.icon-row span:nth-child(1){background:var(--pink)}.icon-row span:nth-child(2){background:var(--gold)}.icon-row span:nth-child(3){background:var(--mint)}.birthday-panel h1{max-width:13ch;margin:0 auto;color:#551331;font-size:6.4rem;line-height:.98;letter-spacing:0;text-shadow:0 8px 24px rgba(255,79,154,.18)}.bottom-animation{position:relative;display:grid;place-items:center;width:100%;max-width:600px;margin:-40px auto clamp(46px,7vw,88px);padding:0 clamp(18px,5vw,72px);pointer-events:none}.lottie-canvas{width:100%;max-width:520px;opacity:.92}@keyframes page-arrive{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes intro-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.08)}}@keyframes confetti-drop{0%{transform:translate3d(0,-12vh,0) rotate(0)}to{transform:translate3d(calc((var(--piece) - 18) * 1px),112vh,0) rotate(620deg)}}@keyframes balloon-rise{0%{opacity:0;transform:translate3d(-8px,130px,0) rotate(-4deg)}12%,80%{opacity:.16}48%{transform:translate3d(18px,-48vh,0) rotate(5deg)}to{opacity:0;transform:translate3d(-12px,-116vh,0) rotate(-3deg)}}@keyframes cake-float{0%,to{transform:scale(var(--cake-scale)) translateY(0)}50%{transform:scale(var(--cake-scale)) translateY(-10px)}}@keyframes flame-dance{0%,to{transform:translate(-50%) rotate(-4deg) scale(1)}50%{transform:translate(-50%) rotate(5deg) scale(1.12)}}@keyframes start-shine{0%,45%{transform:translate(-110%)}to{transform:translate(110%)}}@keyframes title-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes title-gradient-flow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes subtitle-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes start-arrive{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes flag-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes portrait-enter{0%{opacity:0;transform:translate(26px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes small-balloon{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(4deg)}}@keyframes gift-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes gift-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes gift-book-arrive{0%{opacity:0;transform:translateY(42px) rotateX(12deg) scale(.88)}to{opacity:1;transform:translateY(0) rotateX(0) scale(1)}}@keyframes gift-left-page-open{0%{transform:rotateY(58deg) translate(16px)}to{transform:rotateY(-3deg) translate(0)}}@keyframes gift-right-page-open{0%{transform:rotateY(-58deg) translate(-16px)}to{transform:rotateY(3deg) translate(0)}}@keyframes photo-pop{0%{transform:scale(.96) rotate(-1deg)}35%{transform:scale(1.1) rotate(1.4deg)}58%{transform:scale(1.03) rotate(-.5deg)}to{transform:scale(1) rotate(0)}}@keyframes shine-sweep{0%{opacity:0;transform:translate(-110%)}24%{opacity:.95}to{opacity:0;transform:translate(110%)}}@keyframes spark-fly{0%{opacity:0;transform:rotate(calc(var(--spark) * 36deg)) translateY(-12px) scale(.35)}18%{opacity:1}to{opacity:0;transform:rotate(calc(var(--spark) * 36deg)) translateY(-78px) scale(1)}}@media (max-width: 820px){.intro-screen{padding:82px 20px 48px}.bunting{gap:6px}.bunting span{border-top-width:22px;border-left-width:10px;border-right-width:10px}.intro-layout{grid-template-columns:1fr;gap:36px;justify-items:center;text-align:center}.intro-copy,.intro-heading,.intro-actions{justify-items:center}.intro-button-row{justify-content:center}.intro-title{max-width:680px;justify-items:center;font-size:4.5rem}.intro-subtitle{max-width:540px;font-size:.94rem}.gift-book{width:min(100%,720px);grid-template-columns:1fr;min-height:auto}.gift-book:before{display:none}.gift-page{min-height:auto;padding:34px}.gift-page-left{min-height:280px;border-radius:8px 8px 0 0;transform-origin:center bottom}.gift-page-right{border-top:10px solid rgba(255,255,255,.78);border-left:0;border-radius:0 0 8px 8px;transform-origin:center top}.gift-message-text{font-size:1rem;line-height:1.65}.portrait-stage{width:min(100%,460px);min-height:390px}.portrait-stage:before{width:min(84vw,350px)}.portrait-frame{width:min(68vw,282px)}.smile-badge{left:8%;bottom:20%;width:64px;height:64px}.balloon-layer span{width:52px;height:66px}.photo-header{min-height:780px}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:.82fr 1.65fr;padding-top:72px;transform:rotate(-1deg) scale(1.01)}.photo-card{height:100%}.photo-1{grid-column:3 / 4;grid-row:1}.photo-2{grid-column:1;grid-row:2}.photo-3{grid-column:2;grid-row:2}.photo-4{grid-column:3;grid-row:2}.dashboard{min-height:calc(100vh - 780px)}.birthday-panel h1{font-size:4.4rem}.bottom-animation{margin-top:-20px;margin-bottom:clamp(36px,5vw,64px)}}@media (max-width: 520px){.intro-screen{padding:74px 14px 38px}.bunting{top:18px;gap:4px}.bunting span{border-top-width:18px;border-left-width:8px;border-right-width:8px}.bunting-left{left:-28px}.bunting-right{right:-28px}.intro-layout{gap:26px}.intro-copy{gap:18px}.intro-kicker{font-size:.72rem;letter-spacing:.12em}.intro-title{max-width:360px;font-size:3.2rem;line-height:.9;text-shadow:0 3px 0 rgba(82,46,58,.72),0 12px 24px rgba(128,34,83,.14)}.intro-actions{width:min(100%,320px);gap:14px}.intro-subtitle{width:100%;max-width:100%;min-height:40px;font-size:.82rem}.intro-button-row{display:grid;width:100%;grid-template-columns:1fr;gap:10px}.gift-message-trigger,.start-button{width:100%;min-width:0;min-height:48px;padding:12px 18px;font-size:.94rem}.gift-overlay{align-items:start;padding:76px 14px 28px}.gift-close-button{width:44px;height:44px}.gift-book-scene{width:min(100%,380px)}.gift-page{padding:26px 22px}.gift-page-left{min-height:234px}.gift-book-portrait{width:92px;margin-bottom:18px}.gift-page h2{font-size:2rem}.gift-page-note{margin-top:18px;font-size:1.55rem}.gift-message-text{margin-top:18px;font-size:.94rem;line-height:1.58}.portrait-stage{min-height:330px}.portrait-stage:before{width:min(86vw,286px)}.portrait-frame{width:min(72vw,232px);border-width:5px}.portrait-balloons span{width:38px;height:50px;border-width:2px}.portrait-balloons span:after{top:48px;height:58px}.smile-badge{width:54px;height:54px;left:2%}.confetti-layer span{width:8px;height:14px}.balloon-layer span{opacity:.12}.photo-header{min-height:860px;padding:14px}.photo-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:.68fr 1.35fr 1.35fr;padding:68px 12px 34px}.photo-1{grid-column:1 / 3;grid-row:1}.photo-2{grid-column:1;grid-row:2}.photo-3{grid-column:2;grid-row:2}.photo-4{grid-column:1 / 3;grid-row:3;justify-self:center;width:min(54%,260px)}.photo-card{border-width:4px}.brand{padding:9px 12px;font-size:.86rem}.dashboard{min-height:calc(100vh - 860px);padding-inline:14px}.birthday-panel{padding:38px 16px 44px}.icon-row span{width:40px;height:40px}.birthday-panel h1{max-width:10ch;font-size:3.1rem}.bottom-animation{margin-top:-10px;margin-bottom:28px}.lottie-canvas{max-width:100%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}
