:root{--pink-primary:#ff6b8b;--pink-light:#ffe4ec;--pink-pale:#fff5f8;--pink-deep:#e8557a;--green-leaf:#5cb85c;--green-light:#e8f5e9;--cream:#fffaf0;--text-dark:#3d2b35;--text-mid:#7a5060;--shadow:0 4px 20px rgba(255,107,139,.2);--shadow-hover:0 8px 32px rgba(255,107,139,.35);--radius:20px;--radius-sm:12px}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,sans-serif;background:var(--pink-pale);color:var(--text-dark);-webkit-font-smoothing:antialiased}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes pop-in{0%{transform:scale(.7);opacity:0}80%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes slide-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.15)}50%{transform:scale(1)}75%{transform:scale(1.08)}}.animate-float{animation:float 3s ease-in-out infinite}.animate-bounce-slow{animation:bounce 2s ease-in-out infinite}.animate-spin-slow{animation:spin-slow 8s linear infinite}.animate-pop-in{animation:pop-in .4s cubic-bezier(.34,1.56,.64,1) both}.animate-slide-up{animation:slide-up .5s ease-out both}.animate-heartbeat{animation:heartbeat 1.5s ease-in-out infinite}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;background:linear-gradient(135deg,var(--pink-primary),var(--pink-deep));color:#fff;border:none;border-radius:50px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:var(--shadow);transition:all .2s ease;letter-spacing:.5px}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:#fff;color:var(--pink-primary);border:2px solid var(--pink-primary);border-radius:50px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:var(--pink-light);transform:translateY(-1px)}.card{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.chip{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:50px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;border:2px solid transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chip-ingredient{background:var(--pink-light);color:var(--pink-deep);border-color:var(--pink-light)}.chip-ingredient.selected{background:var(--pink-primary);color:#fff;transform:scale(1.05)}.chip-ingredient.selected,.chip-ingredient:hover:not(.selected){border-color:var(--pink-primary)}.progress-bar{width:100%;height:10px;background:var(--pink-light);border-radius:50px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--pink-primary),#ff9ab5);border-radius:50px;transition:width .8s cubic-bezier(.34,1.56,.64,1)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--pink-pale)}::-webkit-scrollbar-thumb{background:var(--pink-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--pink-primary)}