@import "https://fonts.googleapis.com/css2?family=Caveat:wght@500;700&family=Pinyon+Script&display=swap";*{box-sizing:border-box}html,body,#root{background:#fbe7f1;min-height:100vh;margin:0;padding:0;font-family:Caveat,system-ui,sans-serif}.stage{background:radial-gradient(circle at 20% 10%,#ffd6e7 0%,#0000 45%),radial-gradient(circle at 80% 90%,#d6e4ff 0%,#0000 45%),radial-gradient(circle,#fff5fb 0%,#fbe7f1 100%);flex-direction:column;justify-content:center;align-items:center;gap:2rem;width:100%;min-height:100vh;padding:2rem 1rem 4rem;display:flex;position:relative;overflow:hidden}.title{text-align:center;color:#d6336c;text-shadow:0 2px #fff9;letter-spacing:.02em;opacity:0;flex-direction:column;gap:.2rem;margin:0;font-family:Pinyon Script,Brush Script MT,cursive;font-weight:400;line-height:1;animation:1.2s cubic-bezier(.2,1.2,.4,1) .2s forwards titleIn;display:flex;transform:scale(.7)}.title-line{font-size:clamp(2.2rem,6vw,4rem);display:inline-block}.title-line.big{background:linear-gradient(135deg,#ff5d8f,#9b5de5 60%,#00bbf9);color:#0000;transform-origin:50%;-webkit-background-clip:text;background-clip:text;font-size:clamp(5rem,14vw,9rem);animation:3s ease-in-out infinite wobble}@keyframes titleIn{0%{opacity:0;transform:scale(.4)rotate(-8deg)}60%{opacity:1;transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes wobble{0%,to{transform:rotate(-2deg)translateY(0)}50%{transform:rotate(2deg)translateY(-6px)}}.polaroids{perspective:1000px;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;display:flex}.polaroid{--rotate:0deg;--i:0;transform:rotate(var(--rotate)) translateY(-40px) scale(.6);opacity:0;animation:1s cubic-bezier(.2,1.4,.4,1) forwards dropIn;animation-delay:calc(1.4s + var(--i) * .35s);background:#fdfdf7;border-radius:3px;margin:0;padding:14px 14px 48px;transition:transform .35s;position:relative;box-shadow:0 12px 30px #0000002e,0 4px 10px #0000001a}.polaroid:before{content:"";transform:translateX(-50%) rotate(calc(var(--rotate) * -1));background:#ffd7648c;border:1px dashed #b48c3266;border-radius:2px;width:70px;height:22px;position:absolute;top:-12px;left:50%;box-shadow:0 2px 6px #0000001a}.polaroid:hover{z-index:5;transform:rotate(0)scale(1.05)translateY(-6px)}.polaroid-photo{background:#111;width:clamp(220px,28vw,320px);height:clamp(220px,28vw,320px);overflow:hidden}.polaroid-photo img{object-fit:cover;filter:saturate(.95)contrast(1.02);width:100%;height:100%;display:block}.polaroid figcaption{text-align:center;color:#444;font-family:Caveat,Bradley Hand,cursive;font-size:1.4rem;position:absolute;bottom:12px;left:0;right:0}@keyframes dropIn{0%{transform:rotate(calc(var(--rotate) + 25deg)) translateY(-200px) scale(.4);opacity:0}70%{transform:rotate(calc(var(--rotate) - 4deg)) translateY(10px) scale(1.05);opacity:1}to{transform:rotate(var(--rotate)) translateY(0) scale(1);opacity:1}}.sub{color:#d6336c;opacity:0;margin:0;font-family:Caveat,cursive;font-size:clamp(1.4rem,2.6vw,2rem);animation:1.2s 3.2s forwards fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.confetti{pointer-events:none;z-index:10;position:fixed;inset:0;overflow:hidden}.confetti-piece{opacity:.9;border-radius:2px;animation-name:fall;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:forwards;position:absolute;top:-20px}@keyframes fall{0%{transform:translateY(-10vh) rotate(var(--rot));opacity:1}85%{opacity:1}to{transform:translateY(110vh) rotate(calc(var(--rot) + 720deg));opacity:0}}.phase-settled .confetti{opacity:0;transition:opacity 1.5s}.hearts{pointer-events:none;z-index:1;position:fixed;inset:0;overflow:hidden}.heart{color:#ff5d8f;opacity:.8;filter:drop-shadow(0 2px 4px #ff5d8f66);font-size:1.8rem;animation-name:floatUp;animation-timing-function:ease-in;animation-iteration-count:infinite;position:absolute;bottom:-40px}@keyframes floatUp{0%{opacity:0;transform:translateY(0)scale(.6)}20%{opacity:.9}to{opacity:0;transform:translateY(-110vh)scale(1.2)translate(40px)}}.phase-intro .polaroids,.phase-intro .sub{visibility:hidden}@media (width<=720px){.polaroids{gap:1rem}.polaroid{padding:10px 10px 38px}}
