:root{--bg-primary:#fbfbfc;--bg-secondary:#f0f3f6;--border-color:#1a1a1a;--border-width:3px;--shadow-offset:5px;--shadow-color:#1a1a1a;--gf-primary:#ff65a3;--gf-primary-hover:#ff478f;--gf-bg-light:#fff0f6;--gf-border:#801b45;--gf-text:#4d0022;--bf-primary:#4e8eff;--bf-primary-hover:#2d77ff;--bf-bg-light:#edf4ff;--bf-border:#143570;--bf-text:#051633;--text-dark:#1a1a1a;--text-muted:#666;--font-heading:"Fredoka", "Outfit", system-ui, -apple-system, sans-serif;--font-body:"Fredoka", system-ui, -apple-system, sans-serif;--transition-fast:.15s cubic-bezier(.175, .885, .32, 1.275);--transition-normal:.25s cubic-bezier(.175, .885, .32, 1.275)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-dark);background-image:radial-gradient(#dbe3eb 1.5px,#0000 1.5px);background-size:24px 24px;min-height:100vh;padding-bottom:40px;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;font-weight:700}.cartoon-card{border:var(--border-width) solid var(--border-color);box-shadow:var(--shadow-offset) var(--shadow-offset) 0px 0px var(--shadow-color);transition:transform var(--transition-fast), box-shadow var(--transition-fast);background:#fff;border-radius:20px;padding:24px;position:relative;overflow:hidden}.cartoon-card:hover{box-shadow:calc(var(--shadow-offset) + 2px) calc(var(--shadow-offset) + 2px) 0px 0px var(--shadow-color);transform:translate(-2px,-2px)}.bubbly-btn{font-family:var(--font-heading);border:var(--border-width) solid var(--border-color);cursor:pointer;color:var(--text-dark);box-shadow:3px 3px 0px 0px var(--shadow-color);transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);-webkit-user-select:none;user-select:none;background-color:#fff;border-radius:16px;outline:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:1.1rem;font-weight:700;display:inline-flex}.bubbly-btn:hover{box-shadow:4px 4px 0px 0px var(--shadow-color);transform:translate(-1px,-1px)}.bubbly-btn:active{box-shadow:1px 1px 0px 0px var(--shadow-color);transform:translate(2px,2px)}.bubbly-btn.pink{background-color:var(--gf-primary);color:#fff}.bubbly-btn.pink:hover{background-color:var(--gf-primary-hover)}.bubbly-btn.blue{background-color:var(--bf-primary);color:#fff}.bubbly-btn.blue:hover{background-color:var(--bf-primary-hover)}.bubbly-btn.white{background-color:#fff}.bubbly-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:1px 1px 0px 0px var(--shadow-color)!important;transform:none!important}.cartoon-input,.cartoon-select,.cartoon-textarea{font-family:var(--font-body);border:var(--border-width) solid var(--border-color);width:100%;transition:border-color var(--transition-fast);background:#fff;border-radius:14px;outline:none;padding:12px 16px;font-size:1rem;box-shadow:inset 2px 2px #0000000d}.cartoon-input:focus,.cartoon-select:focus,.cartoon-textarea:focus,.pink-theme .cartoon-input:focus,.pink-theme .cartoon-select:focus,.pink-theme .cartoon-textarea:focus{border-color:var(--gf-primary)}.blue-theme .cartoon-input:focus,.blue-theme .cartoon-select:focus,.blue-theme .cartoon-textarea:focus{border-color:var(--bf-primary)}@keyframes wobble{0%,to{transform:rotate(0)}15%{transform:rotate(-5deg)scale(1.05)}30%{transform:rotate(4deg)scale(1.05)}45%{transform:rotate(-3deg)scale(1.03)}60%{transform:rotate(2deg)scale(1.02)}75%{transform:rotate(-1deg)scale(1.01)}}.wobble{animation:.6s ease-in-out wobble}@keyframes shake{0%,to{transform:translate(0)rotate(0)}10%{transform:translate(-4px,-2px)rotate(-1deg)}20%{transform:translate(3px,1px)rotate(1deg)}30%{transform:translate(-3px,3px)rotate(-1deg)}40%{transform:translate(2px,-1px)rotate(1deg)}50%{transform:translate(-1px,2px)rotate(0)}60%{transform:translate(3px,1px)rotate(1deg)}70%{transform:translate(-2px,-1px)rotate(-1deg)}80%{transform:translate(1px,2px)rotate(0)}90%{transform:translate(-1px,-2px)rotate(-1deg)}}.shake{animation:.5s ease-in-out shake}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.float{animation:3s ease-in-out infinite float}@keyframes pulse-soft{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}.pulse-soft{animation:2s ease-in-out infinite pulse-soft}@keyframes smack-pop{0%{opacity:0;transform:scale(.2)rotate(-20deg)}50%{opacity:1;transform:scale(1.3)rotate(15deg)}to{opacity:0;transform:scale(1)rotate(0)}}.smack-overlay{font-family:var(--font-heading);color:#ff2a7f;text-shadow:3px 3px #000;-webkit-text-stroke:1.5px #fff;z-index:10;pointer-events:none;font-size:3rem;font-weight:900;animation:.8s cubic-bezier(.175,.885,.32,1.5) forwards smack-pop;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:10px}::-webkit-scrollbar-thumb{background:var(--text-muted);border:2px solid var(--bg-secondary);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-dark)}.grid-container{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.love-sparkle{pointer-events:none;font-size:1.5rem;animation:1.5s ease-out forwards floatUp;position:absolute}@keyframes floatUp{0%{opacity:1;transform:translateY(0)scale(.5)}to{opacity:0;transform:translateY(-100px)scale(1.2)}}
