:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--bg: #0f0d0a;--card: #1a1714;--border: rgba(255, 200, 130, .12);--accent: #d4884b;--accent-hover: #e6a05e;--text: #f5e6d0;--text-muted: rgba(245, 230, 208, .55);--cup-bg: #2a2420}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}.app{min-height:100vh;padding:1.5rem;max-width:960px;margin:0 auto}.header{text-align:center;margin-bottom:2rem}.header h1{font-size:2rem;font-weight:700;letter-spacing:-.03em;margin:0;color:var(--text)}.title-icon{font-size:1.8rem;vertical-align:middle}.subtitle{margin:.25rem 0 0;color:var(--text-muted);font-size:.95rem}.layout{display:grid;grid-template-columns:1fr 300px;gap:2rem;align-items:start}@media(max-width:700px){.layout{grid-template-columns:1fr}}.ingredients-panel{display:flex;flex-direction:column;gap:1.5rem}.category-title{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .6rem;font-weight:500}.ingredient-grid{display:flex;flex-wrap:wrap;gap:.5rem}.ingredient-btn{display:flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border-radius:.5rem;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;font-size:.85rem;transition:all .15s ease}.ingredient-btn:hover{border-color:var(--accent);background:#d4884b14}.ingredient-btn.active{border-color:var(--accent);background:#d4884b26;box-shadow:0 0 12px #d4884b26}.ingredient-emoji{font-size:1.1rem}.ingredient-name{font-size:.8rem}.preview-panel{position:sticky;top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem;background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem}.cup-container{display:flex;flex-direction:column;align-items:center;position:relative}.cup-container.mixing .cup-body{animation:shake .15s ease-in-out infinite alternate}@keyframes shake{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}.steam{display:flex;gap:.35rem;height:28px;margin-bottom:4px}.steam-line{width:3px;border-radius:2px;background:#ffffff1f;animation:steam-rise 1.8s ease-in-out infinite}.steam-line:nth-child(1){height:20px;animation-delay:0s}.steam-line:nth-child(2){height:26px;animation-delay:.4s}.steam-line:nth-child(3){height:18px;animation-delay:.8s}@keyframes steam-rise{0%,to{opacity:.3;transform:translateY(0) scaleY(1)}50%{opacity:.7;transform:translateY(-6px) scaleY(1.3)}}.cup{position:relative;width:130px}.cup-body{width:130px;height:150px;border-radius:0 0 30% 30%;overflow:hidden;background:var(--cup-bg);border:2px solid rgba(255,200,130,.2);display:flex;flex-direction:column;position:relative}.empty-cup{display:grid;place-items:center;height:100%;color:var(--text-muted);font-size:.8rem}.cup-layer{width:100%;transition:all .4s ease;opacity:.85}.cup-handle{position:absolute;right:-22px;top:20px;width:24px;height:55px;border:3px solid rgba(255,200,130,.2);border-left:none;border-radius:0 20px 20px 0}.cup-base{width:80px;height:8px;margin:0 auto;background:#ffc8821f;border-radius:0 0 6px 6px}.drink-label{text-align:center;margin-top:1rem;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.drink-label h2{font-size:1.15rem;font-weight:600;margin:0;color:var(--accent)}.strength{font-size:.75rem;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase}.selected-list{width:100%;min-height:60px}.selected-list h3{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .5rem;font-weight:500}.selected-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.selected-list li{font-size:.85rem;color:var(--text);opacity:.85}.actions{display:flex;gap:.5rem;width:100%}.mix-btn{flex:1;padding:.65rem 1rem;border-radius:.5rem;border:none;background:var(--accent);color:#0f0d0a;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease}.mix-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.mix-btn:disabled{opacity:.4;cursor:not-allowed}.reset-btn{padding:.65rem 1rem;border-radius:.5rem;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:all .15s ease}.reset-btn:hover{border-color:var(--text-muted);color:var(--text)}
