:root{--pink-50: #fff5f8;--pink-100: #ffe5ec;--pink-200: #ffcad4;--pink-300: #ffb3c1;--pink-400: #ff8fa3;--pink-500: #ff5a8a;--pink-600: #ff3e6c;--pink-700: #d62a55;--bow-red: #ff3e6c;--kitty-yellow: #ffd966;--lavender: #efe5ff;--cream: #fff8ed;--ink: #5a3a4a;--ink-soft: #8a6a7a;font-family:Fredoka,system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{min-height:100vh;background:radial-gradient(circle at 18% 12%,var(--pink-100) 0%,transparent 38%),radial-gradient(circle at 82% 88%,var(--lavender) 0%,transparent 42%),radial-gradient(circle at 50% 50%,#fff 0%,transparent 60%),linear-gradient(180deg,var(--pink-50) 0%,var(--cream) 100%);background-attachment:fixed;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(var(--pink-200) 1.5px,transparent 1.6px);background-size:28px 28px;opacity:.18}#root{min-height:100vh}.app{position:relative;min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;padding:clamp(1rem,3vw,2.5rem);z-index:1}.app-header{text-align:center;z-index:5;position:relative}.bow-mark{display:inline-block;font-size:clamp(2rem,5vw,3rem);filter:drop-shadow(0 4px 12px rgba(255,90,138,.35));animation:wobble 3.5s ease-in-out infinite}.tagline{font-family:Caveat,cursive;font-size:clamp(1.4rem,2.6vw,2rem);color:var(--pink-600);margin:.25rem 0 0;letter-spacing:.5px}.tagline-name{color:var(--pink-700);font-weight:700}.app-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;z-index:5;position:relative}.app-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;z-index:5;position:relative}.app-footer-left,.app-footer-right{flex:1;display:flex}.app-footer-left{justify-content:flex-start}.app-footer-right{justify-content:flex-end}.timer{display:flex;align-items:center;gap:clamp(.5rem,2vw,1.25rem);flex-wrap:wrap;justify-content:center}.timer-cell{background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:2px solid var(--pink-200);border-radius:28px;padding:clamp(1rem,2.5vw,1.75rem) clamp(1rem,3vw,2.25rem);min-width:clamp(7rem,14vw,11rem);text-align:center;box-shadow:0 18px 40px -22px #ff5a8a8c,inset 0 1px #ffffffe6;position:relative;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.timer-cell.is-days{background:linear-gradient(180deg,#fff 0%,var(--pink-100) 100%);border-color:var(--pink-300);transform:scale(1.06)}.timer-cell.is-days .timer-value{font-size:clamp(3.5rem,9vw,6.5rem);background:linear-gradient(180deg,var(--pink-500),var(--pink-700));-webkit-background-clip:text;background-clip:text;color:transparent}.timer-cell:before{content:"";position:absolute;top:-14px;left:50%;transform:translate(-50%);width:22px;height:22px;background:var(--bow-red);border-radius:50%;box-shadow:-10px 0 0 -2px var(--bow-red),10px 0 0 -2px var(--bow-red);opacity:.85}.timer-value{font-family:Fredoka,sans-serif;font-weight:700;font-size:clamp(2.25rem,5.5vw,4rem);line-height:1;color:var(--pink-600);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer-label{margin-top:.5rem;font-family:Caveat,cursive;font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ink-soft);text-transform:lowercase;letter-spacing:.5px}.timer-tick{animation:pulse .6s ease-out}.timer-cell.flip{animation:cellFlip .6s ease-out}@keyframes cellFlip{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg) scale(1)}to{transform:rotateX(0)}}.timer-cell.is-days.flip{animation:cellFlipDays .6s ease-out}@keyframes cellFlipDays{0%{transform:rotateX(0) scale(1.06)}50%{transform:rotateX(-90deg) scale(1.06)}to{transform:rotateX(0) scale(1.06)}}.timer-message{font-family:Caveat,cursive;font-size:clamp(1.6rem,2.6vw,2.2rem);color:var(--pink-600);text-align:center;margin:0;max-width:32ch;line-height:1.25}.polaroid{background:#fff;padding:14px 14px 56px;border-radius:6px;box-shadow:0 24px 48px -20px #5a3a4a59,0 4px 8px -4px #5a3a4a40;transform:rotate(-4deg);transition:transform .4s ease,box-shadow .4s ease;position:relative;width:clamp(160px,18vw,230px)}.polaroid:hover{transform:rotate(0) translateY(-6px) scale(1.04);box-shadow:0 32px 60px -22px #5a3a4a73,0 8px 16px -8px #5a3a4a4d}.polaroid:before{content:"";position:absolute;top:-14px;left:50%;transform:translate(-50%) rotate(-2deg);width:70px;height:18px;background:#ff5a8a66;border-radius:2px;box-shadow:inset 0 0 4px #fff9}.polaroid-img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;background:var(--pink-100)}.polaroid-caption{position:absolute;bottom:14px;left:14px;right:14px;font-family:Caveat,cursive;font-size:1.25rem;text-align:center;color:var(--ink)}.effect-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem .5rem .6rem;background:#ffffffd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1.5px solid var(--pink-200);border-radius:999px;box-shadow:0 8px 20px -10px #ff5a8a59;font-size:.95rem;color:var(--ink)}.effect-badge-dot{width:8px;height:8px;background:var(--pink-500);border-radius:50%;box-shadow:0 0 0 4px #ff5a8a33;animation:dotPulse 2s ease-in-out infinite}.effect-badge-name{font-family:Fredoka,sans-serif;font-weight:500}.fx-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;overflow:hidden}.fx-particle{position:absolute;will-change:transform,opacity}.fx-heart{font-size:28px;color:var(--pink-500);animation:fall linear infinite;filter:drop-shadow(0 3px 6px rgba(255,90,138,.4))}.fx-bubble{border-radius:50%;background:radial-gradient(circle at 30% 30%,#fffffff2,#ffc8dc8c 50%,#ff5a8a40);border:1px solid rgba(255,255,255,.7);box-shadow:inset -4px -4px 8px #ff5a8a26,inset 3px 3px 6px #fffc;animation:rise linear infinite}.fx-sparkle{font-size:22px;animation:twinkle ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(255,217,102,.7))}.fx-petal{width:18px;height:14px;background:radial-gradient(ellipse at 30% 30%,#fff 0%,var(--pink-200) 50%,var(--pink-400) 100%);border-radius:70% 30%/60% 60% 40% 40%;animation:fall linear infinite,spin linear infinite}.fx-bow{font-size:32px;animation:rise linear infinite;filter:drop-shadow(0 4px 8px rgba(255,62,108,.4))}.fx-glitter{width:4px;height:4px;border-radius:50%;animation:fall linear infinite;box-shadow:0 0 6px currentColor}.fx-cursor-heart{position:fixed;font-size:22px;color:var(--pink-500);pointer-events:none;z-index:9999;-webkit-user-select:none;user-select:none;animation:cursorPop 1.2s ease-out forwards;filter:drop-shadow(0 2px 4px rgba(255,90,138,.4))}@keyframes cursorPop{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}60%{transform:translate(-50%,calc(-50% - 30px)) scale(1.2);opacity:.9}to{transform:translate(-50%,calc(-50% - 60px)) scale(.6);opacity:0}}.fx-rainbow-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(135deg,#ffc8dc8c,#ffe6c88c,#dcffe68c,#c8e6ff8c,#e6c8ff8c,#ffc8f08c);background-size:400% 400%;animation:rainbowShift 18s ease-in-out infinite}.fx-kitty{font-size:48px;animation:kittyPop 4s ease-in-out infinite;transform-origin:center}.fx-strawberry{font-size:30px;animation:fall linear infinite,spin linear infinite;filter:drop-shadow(0 3px 6px rgba(255,0,50,.3))}.fx-confetti{width:10px;height:16px;border-radius:2px;animation:fall linear infinite,spin3d linear infinite}.fx-butterfly{font-size:30px;left:0;top:0;animation:flutter linear infinite;filter:drop-shadow(0 3px 6px rgba(180,100,220,.35))}.fx-bigstar{font-size:28px;animation:twinkle ease-in-out infinite}@keyframes fall{0%{translate:0 -10vh}25%{translate:30px 25vh}50%{translate:-30px 55vh}75%{translate:30px 85vh}to{translate:0 110vh}}@keyframes rise{0%{translate:0 110vh}25%{translate:30px 85vh}50%{translate:-30px 55vh}75%{translate:30px 25vh}to{translate:0 -10vh}}@keyframes flutter{0%{translate:-10vw 0}20%{translate:15vw -28px}40%{translate:40vw 8px}60%{translate:65vw -28px}80%{translate:90vw 8px}to{translate:110vw 0}}@keyframes spin{0%{rotate:0deg}to{rotate:360deg}}@keyframes spin3d{0%{transform:rotate3d(1,1,0,0)}to{transform:rotate3d(1,1,0,720deg)}}@keyframes twinkle{0%,to{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes dotPulse{0%,to{box-shadow:0 0 0 4px #ff5a8a33}50%{box-shadow:0 0 0 8px #ff5a8a0d}}@keyframes wobble{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}@keyframes rainbowShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes kittyPop{0%,80%,to{opacity:0;transform:scale(.2) rotate(-12deg)}20%,60%{opacity:1;transform:scale(1) rotate(6deg)}}@keyframes flutterX{0%{left:-10vw}to{left:110vw}}@keyframes flutterY{0%{transform:translateY(0)}to{transform:translateY(-60px)}}.test-corner-link{position:fixed;top:14px;right:14px;font-family:Caveat,cursive;font-size:1.05rem;color:var(--pink-600);background:#ffffffb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--pink-200);border-radius:999px;padding:.3rem .85rem;text-decoration:none;z-index:8;opacity:.7;transition:opacity .2s ease,transform .2s ease}.test-corner-link:hover{opacity:1;transform:translateY(-1px)}.test-page{grid-template-rows:auto 1fr auto}.test-sub{font-family:Caveat,cursive;font-size:1.25rem;color:var(--ink-soft);margin:.25rem 0 0}.test-page .app-header,.test-page .test-grid,.test-page .test-footer{z-index:12;position:relative}.test-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem;width:min(100%,900px);margin:0 auto;align-self:center}.test-chip-chaos{background:linear-gradient(135deg,#fff0f5,#ffe1ec,#ffd2e2);border-color:var(--pink-500);position:relative}.test-chip-chaos:after{content:"✨";position:absolute;top:-8px;right:-8px;font-size:1rem;filter:drop-shadow(0 0 6px rgba(255,217,102,.7))}.test-chip-chaos.is-active{background:linear-gradient(135deg,var(--pink-200) 0%,var(--pink-300) 100%);border-color:var(--pink-700);box-shadow:0 14px 28px -10px #ff3e6c99}.test-chip{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1.5px solid var(--pink-200);border-radius:16px;box-shadow:0 8px 18px -10px #ff5a8a59;cursor:pointer;font-family:Fredoka,sans-serif;font-size:.95rem;color:var(--ink);text-align:left;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.test-chip:hover{transform:translateY(-2px);border-color:var(--pink-400);box-shadow:0 14px 26px -14px #ff5a8a80}.test-chip:focus-visible{outline:3px solid var(--pink-300);outline-offset:2px}.test-chip.is-active{background:linear-gradient(180deg,#fff 0%,var(--pink-100) 100%);border-color:var(--pink-500);box-shadow:0 14px 28px -12px #ff5a8a8c}.test-chip-emoji{font-size:1.4rem;flex-shrink:0}.test-chip-name{text-transform:lowercase}.test-footer{align-items:center;flex-direction:row;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.test-back{font-family:Caveat,cursive;font-size:1.35rem;color:var(--pink-600);text-decoration:none;padding:.4rem .85rem;border-radius:999px;transition:background .15s ease}.test-back:hover{background:#ffffffb3}@media (max-width: 640px){.test-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.test-chip{padding:.7rem .75rem;font-size:.9rem;border-radius:14px}.test-chip-emoji{font-size:1.2rem}.test-footer{flex-direction:column;text-align:center}}.chaos-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;display:grid;place-items:center;overflow:hidden}.chaos-title{font-family:Pacifico,cursive;font-size:clamp(3rem,12vw,11rem);background:linear-gradient(180deg,var(--pink-400),var(--pink-700));-webkit-background-clip:text;background-clip:text;color:transparent;text-align:center;line-height:1;text-shadow:0 8px 24px rgba(255,90,138,.3);animation:chaosTitle 3s ease-in-out infinite;margin:0;padding:0 1rem}@keyframes chaosTitle{0%,to{transform:scale(1) rotate(-1deg)}50%{transform:scale(1.04) rotate(1deg)}}.chaos-subtitle{font-family:Caveat,cursive;font-size:clamp(1.5rem,4vw,2.5rem);color:var(--pink-700);margin-top:1rem;text-align:center}.chaos-message{position:absolute;font-family:Caveat,cursive;font-weight:700;white-space:nowrap;color:var(--pink-600);text-shadow:0 2px 4px rgba(255,255,255,.8),0 4px 12px rgba(255,90,138,.4);animation:chaosFloat ease-in-out infinite alternate;pointer-events:none}@keyframes chaosFloat{0%{transform:translate(0) rotate(var(--rot, 0deg)) scale(.95)}to{transform:translate(8px,-12px) rotate(calc(var(--rot, 0deg) + 4deg)) scale(1.05)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fx-layer{display:none}}@media (max-width: 900px){.app{padding:1.25rem 1rem 1.5rem;gap:1.5rem}.app-main{gap:1.75rem}.app-footer{flex-direction:column-reverse;align-items:center;gap:1.25rem;text-align:center}.app-footer-left,.app-footer-right{justify-content:center;width:100%}}@media (max-width: 640px){.timer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;width:100%;max-width:360px}.timer-cell{border-radius:22px;padding:.85rem .5rem;min-width:0;width:100%}.timer-cell.is-days,.timer-cell.is-days.flip{transform:scale(1)}.timer-cell.is-days{grid-column:span 2}.timer-cell.is-days .timer-value{font-size:clamp(2.75rem,14vw,4.5rem)}.timer-value{font-size:clamp(1.85rem,8vw,2.5rem)}.timer-message{font-size:1.45rem}.effect-badge{font-size:.85rem;padding:.4rem .85rem .4rem .55rem}.polaroid{width:clamp(150px,55vw,200px);padding:10px 10px 44px}.polaroid-caption{bottom:10px;left:10px;right:10px;font-size:1.05rem}}@media (max-width: 380px){.timer-cell:before{width:16px;height:16px;top:-10px;box-shadow:-8px 0 0 -2px var(--bow-red),8px 0 0 -2px var(--bow-red)}.timer-cell{padding:.75rem .4rem}.timer-label{font-size:1rem}}@media (max-width: 640px){.chaos-title{font-size:clamp(2.4rem,14vw,5rem);line-height:1.05}.chaos-subtitle{font-size:clamp(1.2rem,5vw,1.8rem);padding:0 .5rem}.chaos-message{font-size:clamp(1rem,3.6vw,1.6rem)!important}}
