.badge{display:inline-flex;align-items:center;gap:.2rem;padding:.25rem .55rem;border-radius:var(--radius-full);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;white-space:nowrap;line-height:1.2;transition:all .15s ease}.badge--accent{background:#38bdf81f;color:#7dd3fc;border:1px solid rgba(56,189,248,.25)}.badge--neutral{background:#64748b1a;color:#94a3b8;border:1px solid rgba(100,116,139,.2)}.badge--outline{background:transparent;color:#94a3b8;border:1px solid rgba(255,255,255,.1)}.badge--soft{background:#818cf81a;color:#a5b4fc;border:1px solid rgba(129,140,248,.2)}.badge--bold{background:#f871711a;color:#fca5a5;border:1px solid rgba(248,113,113,.25)}.badge--success{background:#34d3991a;color:#6ee7b7;border:1px solid rgba(52,211,153,.25)}.badge--warning{background:#fbbf241a;color:#fcd34d;border:1px solid rgba(251,191,36,.25)}.badge:hover{filter:brightness(1.1)}.recipe-card__meta .badge,.recipe-card__item-sources .badge,.recipe-card__catalyst-sources .badge{font-size:.6rem;padding:.2rem .45rem;letter-spacing:.03em}.hero{background:linear-gradient(180deg,rgba(56,189,248,.08) 0%,transparent 80%),linear-gradient(135deg,rgba(129,140,248,.05) 0%,transparent 50%),linear-gradient(225deg,rgba(244,114,182,.03) 0%,transparent 40%);border-bottom:1px solid var(--border);padding:clamp(var(--space-xl),6vw,var(--space-3xl)) var(--space-lg) clamp(var(--space-lg),5vw,var(--space-2xl));position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:-60%;left:-30%;width:80%;height:250%;background:radial-gradient(ellipse,rgba(56,189,248,.08),transparent 65%);pointer-events:none;opacity:.6;animation:heroGlow 8s ease-in-out infinite}.hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-soft),var(--secondary-soft),transparent)}@keyframes heroGlow{0%,to{transform:translate(0) scale(1);opacity:.6}50%{transform:translate(20px,-10px) scale(1.1);opacity:.8}}.hero__content{max-width:1560px;margin:0 auto;padding:0 clamp(var(--space-sm),2vw,var(--space-md));position:relative;z-index:1}.hero__content h1{margin:0 0 var(--space-sm) 0;font-size:clamp(1.75rem,5vw,3rem);font-weight:800;letter-spacing:-.03em;background:linear-gradient(135deg,var(--text) 0%,var(--accent) 50%,var(--secondary) 100%);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 8s ease-in-out infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.hero__content p{margin:0 0 var(--space-lg) 0;color:var(--muted);font-size:1rem;max-width:500px}.hero__actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center}.hero__actions input[type=search]{flex:1 1 300px;max-width:450px;padding:.875rem 1.5rem;border-radius:var(--radius-full);border:1px solid var(--border);background:#0a0c10b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font-size:1rem;transition:all var(--transition-base)}.hero__actions input[type=search]:hover{border-color:var(--border-hover);background:#0a0c10d9}.hero__actions input[type=search]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft),var(--shadow-md);background:#0a0c10f2}.hero__actions input[type=search]::placeholder{color:var(--muted);opacity:.7}.hero__actions button{padding:.875rem 1.5rem;border-radius:var(--radius-lg);border:none;background:linear-gradient(135deg,var(--accent),#0ea5e9);color:#04131a;font-weight:600;font-size:.9rem;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:var(--space-sm);white-space:nowrap;position:relative;overflow:hidden}.hero__actions button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent,rgba(255,255,255,.2),transparent);transform:translate(-100%);transition:transform .5s ease}.hero__actions button:hover{transform:translateY(-3px);box-shadow:0 12px 32px #38bdf866}.hero__actions button:hover:before{transform:translate(100%)}.hero__actions button:active{transform:translateY(-1px)}.hero__toggle{background:#0a0c10b3!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border)!important;color:var(--text)!important;font-weight:500;transition:all var(--transition-base)!important}.hero__toggle:before{display:none}.hero__toggle:hover{background:#38bdf81a!important;border-color:var(--border-hover)!important;transform:translateY(-2px);box-shadow:var(--shadow-md)}.hero__toggle[aria-pressed=true]{background:var(--accent-soft)!important;border-color:#38bdf880!important;color:var(--accent)!important}.hero__quality-info{margin-left:auto;display:flex;align-items:center;gap:var(--space-sm);font-size:.75rem;color:var(--muted);background:#0a0c1080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:.5rem .75rem;border-radius:var(--radius-lg);border:1px solid var(--border)}.hero__quality-info .quality-label{font-weight:600;color:var(--text);opacity:.7;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.hero__quality-info .quality-levels{display:flex;gap:.375rem}.hero__quality-info .quality-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:var(--radius-full);background:#ffffff08;border:1px solid transparent;transition:all var(--transition-base)}.hero__quality-info .quality-badge:hover{transform:translateY(-1px)}.hero__quality-info .quality-badge__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.hero__quality-info .quality-badge__name{font-weight:600}.hero__quality-info .quality-badge__boost{opacity:.6;font-size:.65rem}.hero__quality-info .quality-badge--good{border-color:#86efac33;background:#86efac14}.hero__quality-info .quality-badge--good .quality-badge__dot{background:#86efac;box-shadow:0 0 6px #86efac80}.hero__quality-info .quality-badge--good .quality-badge__name{color:#86efac}.hero__quality-info .quality-badge--great{border-color:#38bdf833;background:#38bdf814}.hero__quality-info .quality-badge--great .quality-badge__dot{background:#38bdf8;box-shadow:0 0 6px #38bdf880}.hero__quality-info .quality-badge--great .quality-badge__name{color:#38bdf8}.hero__quality-info .quality-badge--excellent{border-color:#c084fc33;background:#c084fc14}.hero__quality-info .quality-badge--excellent .quality-badge__dot{background:#c084fc;box-shadow:0 0 6px #c084fc80}.hero__quality-info .quality-badge--excellent .quality-badge__name{color:#c084fc}.hero__quality-info .quality-badge--fantastic{border-color:#fbbf2440;background:#fbbf241a}.hero__quality-info .quality-badge--fantastic .quality-badge__dot{background:#fbbf24;box-shadow:0 0 8px #fbbf2499}.hero__quality-info .quality-badge--fantastic .quality-badge__name{color:#fbbf24}.hero__quality-info .quality-suffix{opacity:.5;font-size:.65rem;font-style:italic}@media(max-width:1024px){.hero__actions input[type=search]{max-width:none}}@media(max-width:768px){.hero{padding:var(--space-xl) var(--space-md) var(--space-lg)}.hero:before{opacity:.3;animation:none}.hero__actions{gap:var(--space-sm)}.hero__actions button{padding:.75rem 1.25rem;font-size:.85rem}.hero__quality-info{padding:.375rem .5rem}.hero__quality-info .quality-badge__boost,.hero__quality-info .quality-suffix{display:none}}@media(max-width:620px){.hero__content h1{font-size:1.75rem;animation:none}.hero__actions{flex-direction:column;align-items:stretch}.hero__actions input[type=search]{flex:none;width:100%;padding:.75rem 1.25rem}.hero__actions button{justify-content:center}.hero__quality-info{position:absolute;top:var(--space-md);right:var(--space-md);margin-left:0;padding:.375rem .5rem;gap:.25rem}.hero__quality-info .quality-label,.hero__quality-info .quality-suffix{display:none}.hero__quality-info .quality-levels{gap:.25rem}.hero__quality-info .quality-badge{padding:.2rem .375rem;gap:.2rem}.hero__quality-info .quality-badge__boost{display:none}.hero__quality-info .quality-badge__name{font-size:.65rem}.hero__quality-info .quality-badge__dot{width:5px;height:5px}}@media(max-width:400px){.hero{padding:var(--space-lg) var(--space-sm) var(--space-md)}.hero__content h1{font-size:1.5rem}.hero__actions button{padding:.65rem 1rem;font-size:.8rem}}.filters{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-lg);position:sticky;top:var(--space-md);align-self:start;display:flex;flex-direction:column;gap:var(--space-md);box-shadow:var(--shadow-lg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.filters:hover{border-color:var(--border-hover)}.filters::-webkit-scrollbar{width:6px}.filters::-webkit-scrollbar-track{background:transparent}.filters::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:var(--radius-full)}.filters::-webkit-scrollbar-thumb:hover{background:#94a3b866}.filters__group{display:flex;flex-direction:column;gap:.5rem;padding-bottom:var(--space-md);border-bottom:1px solid var(--border)}.filters__group:last-of-type{border-bottom:none;padding-bottom:0}.filters__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.filters__header h2{margin:0;font-size:.85rem;font-weight:700;letter-spacing:-.01em;background:linear-gradient(135deg,var(--text) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.filters__subheader{display:flex;justify-content:space-between;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs)}.filters__subheader h3{margin:0;font-size:.7rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.filters__actions{display:flex;gap:var(--space-xs)}.filters__action{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-full);padding:.25rem .6rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all var(--transition-fast);font-weight:600}.filters__action:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.filters__action:disabled,.filters__action[aria-disabled=true]{opacity:.35;cursor:not-allowed;border-color:var(--border);color:var(--muted);background:transparent;pointer-events:none;transform:none}.filters__hint{margin:0;font-size:.72rem;color:var(--muted);line-height:1.5}.filters__chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.filters__chips .filters__hint{margin:0;width:100%}.filters__chips--scroll{max-height:180px;overflow-y:auto;padding-right:var(--space-xs);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.chip-toggle{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .65rem;border-radius:var(--radius-full);border:1px solid var(--border);background:#0a0c1080;color:var(--muted);font-size:.72rem;cursor:pointer;transition:all var(--transition-fast);white-space:normal;text-align:left;flex-wrap:wrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.chip-toggle span{pointer-events:none}.chip-toggle__count{font-size:.62rem;background:#00000059;border-radius:var(--radius-full);padding:.15rem .35rem;color:var(--muted);align-self:center;font-weight:600;font-variant-numeric:tabular-nums}.chip-toggle:hover{border-color:var(--border-hover);background:#12151ccc;color:var(--text-secondary);transform:translateY(-1px)}.chip-toggle[aria-pressed=true]{background:linear-gradient(135deg,var(--accent-soft),rgba(56,189,248,.2));border-color:#38bdf873;color:var(--text);box-shadow:0 4px 16px #38bdf833}.chip-toggle[aria-pressed=true] .chip-toggle__count{background:#0000004d;color:var(--text-secondary)}.chip-toggle[aria-pressed=false]{opacity:.55}.chip-toggle[aria-pressed=false]:hover{opacity:.85}.chip-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toggle{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:.25rem;color:var(--text-secondary);font-size:.82rem;cursor:pointer;padding:.2rem 0;transition:color var(--transition-fast);border-radius:var(--radius-sm)}.toggle:hover{color:var(--text)}.toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.select-label{display:block;margin-bottom:.25rem;color:var(--muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}select{width:100%;padding:.5rem 2rem .5rem .75rem;border-radius:var(--radius-md);border:1px solid var(--border);background:#0a0c1099;color:var(--text);font-size:.82rem;cursor:pointer;transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}select:hover{border-color:var(--border-hover);background-color:#0a0c10cc}select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.stats{display:grid;gap:.35rem;margin:0}.stats div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:.3rem;font-size:.75rem}.stats div:last-child{border-bottom:none;padding-bottom:0}.stats dt{font-weight:600;color:var(--text-secondary)}.stats dd{margin:0;color:var(--muted);font-variant-numeric:tabular-nums}.stats dd a{color:var(--accent);text-decoration:none;transition:all var(--transition-fast)}.stats dd a:hover{color:var(--accent-hover);text-decoration:underline}.version-hint{font-size:.65rem;color:var(--muted);opacity:.8;margin:.25rem 0 0;font-style:italic}@media(max-width:1024px){.filters{position:static;order:1;box-shadow:var(--shadow-md);display:none;max-height:none}.mobile-drawer .filters{display:flex;background:transparent;border:none;padding:0;box-shadow:none;position:static;max-height:none;overflow-y:visible;backdrop-filter:none;-webkit-backdrop-filter:none}}.icon{display:inline-block;vertical-align:middle;flex-shrink:0}.icon--fire{color:#f97316}.icon--cold{color:#38bdf8}.icon--pill{color:#a78bfa}.icon--skull{color:#f87171}.icon--sparkle{color:#fbbf24}.icon--heart{color:#f472b6}.icon--bolt{color:#facc15}.icon--ingredient{color:var(--accent)}.icon--result{color:var(--secondary)}.icon--catalyst{color:var(--accent)}.icon--search{color:var(--muted)}.icon--alert{color:var(--error)}.icon--tree{color:var(--secondary)}.recipe-card{--card-bg: rgba(15, 18, 25, .85);--card-border: rgba(255, 255, 255, .06);--card-border-hover: rgba(255, 255, 255, .12);--section-bg: rgba(255, 255, 255, .02);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;position:relative}.recipe-card:hover{border-color:var(--card-border-hover);transform:translateY(-2px);box-shadow:0 12px 40px #0000004d,0 0 0 1px #38bdf80d}.recipe-card__header{display:flex;align-items:flex-start;gap:var(--space-md)}.recipe-card__icon-wrap{flex-shrink:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#0000004d;border:1px solid var(--card-border);border-radius:var(--radius-lg);overflow:hidden}.recipe-card__icon{image-rendering:pixelated;object-fit:contain}.recipe-card__icon-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,hsl(var(--hue-1, 200),60%,45%),hsl(var(--hue-2, 240),55%,40%));font-size:1.5rem;font-weight:800;color:#ffffffe6;text-shadow:0 2px 4px rgba(0,0,0,.3)}.recipe-card__title-group{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xs)}.recipe-card__title{margin:0;font-size:1.15rem;font-weight:700;color:var(--text);line-height:1.3;letter-spacing:-.01em}.recipe-card__meta{display:flex;flex-wrap:wrap;gap:6px}.recipe-card__meta .badge{font-size:.65rem;padding:.2rem .5rem}.recipe-card__description{margin:0;font-size:.875rem;line-height:1.6;color:var(--text-secondary);font-style:italic;padding-left:var(--space-md);border-left:2px solid var(--accent-soft)}.recipe-card__tags{display:flex;flex-wrap:wrap;gap:6px}.recipe-card__tag{font-size:.7rem;padding:.2rem .6rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);color:var(--muted);text-transform:lowercase}.recipe-card__body{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-sm);background:var(--section-bg);border-radius:var(--radius-lg);padding:var(--space-md)}.recipe-card__section{display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-card__section-title{margin:0;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;align-items:center;gap:var(--space-xs)}.recipe-card__section-icon{font-size:.85rem;opacity:.8}.recipe-card__divider{width:1px;background:linear-gradient(180deg,transparent,var(--card-border) 20%,var(--card-border) 80%,transparent);margin:0 var(--space-xs)}.recipe-card__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-card__item{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:.85rem}.recipe-card__item-qty{font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;min-width:2.5rem;font-size:.8rem}.recipe-card__item-content{display:flex;flex-direction:column;gap:4px;min-width:0}.recipe-card__item-name{color:var(--text);line-height:1.3}.recipe-card__item-sources{display:flex;flex-wrap:wrap;gap:4px}.recipe-card__item-sources .badge{font-size:.58rem;padding:.15rem .4rem}.recipe-card__item-more{font-size:.6rem;color:var(--muted);padding:.15rem .4rem;background:#ffffff0a;border-radius:var(--radius-full)}.recipe-card__catalysts{background:#38bdf80a;border:1px solid rgba(56,189,248,.1);border-radius:var(--radius-lg);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-card__catalyst-note{margin-left:auto;font-size:.65rem;font-weight:400;text-transform:lowercase;letter-spacing:0;color:var(--accent);opacity:.7;font-style:italic}.recipe-card__catalyst-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-sm)}.recipe-card__catalyst{display:flex;align-items:center;gap:var(--space-sm);background:#0003;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm)}.recipe-card__catalyst-qty{font-size:.7rem;font-weight:700;color:var(--accent);background:#38bdf826;padding:.15rem .4rem;border-radius:var(--radius-sm)}.recipe-card__catalyst-info{display:flex;flex-direction:column;gap:2px;min-width:0}.recipe-card__catalyst-name{font-size:.8rem;font-weight:500;color:var(--text)}.recipe-card__catalyst-sources{display:flex;flex-wrap:wrap;gap:4px}.recipe-card__catalyst-sources .badge{font-size:.55rem;padding:.1rem .35rem}.recipe-card__requirements{display:flex;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#ffffff05;border-radius:var(--radius-md)}.recipe-card__temp{display:flex;align-items:center;gap:var(--space-xs);font-size:.8rem;color:var(--text)}.recipe-card__temp-icon{font-size:1rem}.recipe-card__temp-text{font-weight:500}.recipe-card__props{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.recipe-card__prop{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-secondary);background:#ffffff08;padding:.2rem .5rem;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.05)}.recipe-card__prop-icon{font-size:.85rem}.recipe-card__relations-section{display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-card__relations-toggle{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:#818cf80f;border:1px solid rgba(129,140,248,.12);border-radius:var(--radius-md);color:var(--text);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.recipe-card__relations-toggle:hover{background:#818cf81a;border-color:#818cf833}.recipe-card__relations-toggle-icon{font-size:.65rem;color:var(--secondary);opacity:.8}.recipe-card__relations-count{margin-left:auto;font-size:.65rem;background:#818cf826;color:var(--secondary);padding:.15rem .5rem;border-radius:var(--radius-full);font-weight:600}.recipe-card__relations{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background:#00000026;border-radius:var(--radius-md)}.recipe-card__relation-group{display:flex;flex-direction:column;gap:var(--space-xs)}.recipe-card__relation-title{margin:0;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 var(--space-xs)}.recipe-card__relation-group--from .recipe-card__relation-title{color:var(--accent)}.recipe-card__relation-group--to .recipe-card__relation-title{color:var(--secondary)}.recipe-card__relation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.recipe-card__relation-item{display:flex;flex-direction:column}.recipe-card__relation-item--missing{padding:var(--space-xs) var(--space-sm);font-size:.75rem;color:var(--muted);font-style:italic}.recipe-card__relation-btn{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);background:#ffffff05;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text);font-size:.8rem;cursor:pointer;transition:all .15s ease;text-align:left}.recipe-card__relation-btn:hover{background:#ffffff0d;border-color:#ffffff14}.recipe-card__relation-name{flex:1;font-weight:500}.recipe-card__relation-strength{font-size:.7rem;color:var(--accent);font-weight:600}.recipe-card__relation-arrow{font-size:.75rem;color:var(--muted);width:1rem;text-align:center}.recipe-card__relation-details{padding:var(--space-sm);padding-left:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs)}.recipe-card__relation-msg{margin:0;font-size:.75rem;color:var(--muted);font-style:italic;line-height:1.5}.recipe-card__relation-ingredients{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;font-size:.75rem;color:var(--text-secondary)}.recipe-card__relation-ingredients strong{color:var(--accent);font-weight:600}.recipe-card__dev{display:none}.recipe-card[data-view=developer] .recipe-card__dev{display:flex;flex-direction:column;gap:var(--space-xs);padding-top:var(--space-md);border-top:1px solid var(--card-border)}.recipe-card__dev-path{font-size:.7rem;font-family:var(--font-mono);color:var(--muted);background:#0003;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);word-break:break-all}.recipe-card__dev-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:.7rem;color:var(--muted)}.recipe-card__dev-meta span{background:#00000026;padding:.15rem .4rem;border-radius:var(--radius-sm)}@media(max-width:640px){.recipe-card{padding:var(--space-md);gap:var(--space-sm);border-radius:var(--radius-lg)}.recipe-card:hover{transform:none}.recipe-card__header{gap:var(--space-sm)}.recipe-card__icon-wrap{width:48px;height:48px}.recipe-card__icon-placeholder{font-size:1.25rem}.recipe-card__title{font-size:1.05rem}.recipe-card__body{grid-template-columns:1fr;gap:var(--space-md)}.recipe-card__divider{display:none}.recipe-card__section{padding-bottom:var(--space-sm);border-bottom:1px solid var(--card-border)}.recipe-card__section:last-of-type{border-bottom:none;padding-bottom:0}}@media(max-width:400px){.recipe-card{padding:var(--space-sm) var(--space-md)}.recipe-card__meta{flex-direction:column;align-items:flex-start}.recipe-card__requirements{flex-direction:column}}.recipe-container{display:flex;flex-direction:column;gap:var(--space-md)}.recipe-status{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);padding:var(--space-sm) var(--space-md);background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:var(--radius-lg);font-size:.85rem;color:var(--text-secondary)}.recipe-status__count{display:flex;align-items:baseline;gap:.3em}.recipe-status__count strong{font-size:1.1rem;font-weight:700;color:var(--text)}.recipe-status__filter{font-size:.75rem;color:var(--muted);padding:.2rem .6rem;background:#ffffff08;border-radius:var(--radius-full)}.recipe-grid{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr))}.recipe-grid--loading{pointer-events:none}.recipe-skeleton{background:#0f121999;border:1px solid rgba(255,255,255,.04);border-radius:var(--radius-xl);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);min-height:280px;overflow:hidden;position:relative}.recipe-skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.02) 50%,transparent);transform:translate(-100%);animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{to{transform:translate(100%)}}.recipe-skeleton__header{display:flex;align-items:flex-start;gap:var(--space-md)}.recipe-skeleton__icon{width:56px;height:56px;background:#ffffff0a;border-radius:var(--radius-lg);flex-shrink:0}.recipe-skeleton__title-area{flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}.recipe-skeleton__title{height:22px;width:70%;background:#ffffff0f;border-radius:var(--radius-sm)}.recipe-skeleton__badges{height:18px;width:50%;background:#ffffff0a;border-radius:var(--radius-full)}.recipe-skeleton__body{flex:1;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:#ffffff05;border-radius:var(--radius-lg)}.recipe-skeleton__line{height:14px;background:#ffffff0a;border-radius:var(--radius-sm)}.recipe-skeleton__line--short{width:60%}.recipe-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl);background:#f871710d;border:1px solid rgba(248,113,113,.15);border-radius:var(--radius-xl);text-align:center}.recipe-error__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#f871711a;border:2px solid rgba(248,113,113,.3);border-radius:50%;color:var(--error);font-size:1.5rem;font-weight:700}.recipe-error__message{margin:0;color:var(--text-secondary);font-size:.95rem;max-width:400px;line-height:1.6}.recipe-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-3xl) var(--space-xl);background:linear-gradient(145deg,#0f121980,#14182066);border:1px dashed rgba(255,255,255,.08);border-radius:var(--radius-2xl)}.recipe-empty__visual{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-soft),var(--secondary-soft));border-radius:50%;margin-bottom:var(--space-lg)}.recipe-empty__icon{font-size:2.5rem;font-weight:700;color:var(--text);opacity:.6}.recipe-empty__title{margin:0 0 var(--space-sm) 0;font-size:1.35rem;font-weight:700;color:var(--text)}.recipe-empty__text{margin:0 0 var(--space-xl) 0;max-width:320px;color:var(--muted);font-size:.9rem;line-height:1.6}.recipe-empty__btn{padding:.75rem 1.75rem;background:linear-gradient(135deg,var(--accent),#0ea5e9);border:none;border-radius:var(--radius-lg);color:#04131a;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.recipe-empty__btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #38bdf84d}.recipe-empty__btn:active{transform:translateY(0)}@media(max-width:1200px){.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:var(--space-md)}}@media(max-width:768px){.recipe-grid{grid-template-columns:1fr;gap:var(--space-md)}.recipe-skeleton{min-height:240px}.recipe-empty{padding:var(--space-2xl) var(--space-md)}.recipe-empty__visual{width:64px;height:64px}.recipe-empty__icon{font-size:2rem}.recipe-empty__title{font-size:1.15rem}}@media(max-width:480px){.recipe-status{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.recipe-empty{padding:var(--space-xl) var(--space-md);border-radius:var(--radius-xl)}.recipe-empty__btn{width:100%}}.mobile-only{display:none}.mobile-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;visibility:hidden;transition:visibility .4s ease}.mobile-drawer[aria-hidden=false]{visibility:visible}.mobile-drawer__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000bf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;transition:opacity .4s ease}.mobile-drawer[aria-hidden=false] .mobile-drawer__overlay{opacity:1}.mobile-drawer__content{position:absolute;top:0;bottom:0;left:0;width:min(360px,90vw);background:linear-gradient(180deg,var(--panel) 0%,rgba(12,15,20,.98) 100%);border-right:1px solid var(--border);padding:var(--space-lg);transform:translate(-100%);transition:transform .4s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:var(--space-lg);overflow-y:auto;box-shadow:20px 0 60px #00000080;overscroll-behavior:contain}.mobile-drawer[aria-hidden=false] .mobile-drawer__content{transform:translate(0)}.mobile-drawer__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-md);border-bottom:1px solid var(--border)}.mobile-drawer__header h2{margin:0;font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--text) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.mobile-drawer__close{background:transparent;border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--muted);width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;line-height:1;cursor:pointer;transition:all var(--transition-fast)}.mobile-drawer__close:hover{color:var(--text);border-color:var(--border-hover);background:#ffffff0d;transform:rotate(90deg)}.mobile-drawer .filters{display:flex;background:transparent;border:none;padding:0;box-shadow:none;position:static;max-height:none;overflow-y:visible;backdrop-filter:none;-webkit-backdrop-filter:none}@media(max-width:1024px){.mobile-only{display:inline-flex}}@media(max-width:480px){.mobile-drawer__content{width:100%;padding:var(--space-md);border-right:none}.mobile-drawer__header h2{font-size:1.1rem}}.back-to-top{position:fixed;bottom:var(--space-xl);right:var(--space-xl);width:56px;height:56px;border-radius:var(--radius-full);background:linear-gradient(145deg,var(--panel),rgba(18,21,28,.95));border:1px solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-lg);transition:all var(--transition-base);z-index:90;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);animation:fadeIn .3s ease}.back-to-top:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--accent),var(--secondary));opacity:0;transition:opacity var(--transition-base);z-index:-1}.back-to-top:hover{transform:translateY(-6px) scale(1.05);border-color:transparent;color:var(--accent);box-shadow:var(--shadow-lg),0 0 30px var(--accent-glow),0 20px 40px #0000004d}.back-to-top:hover:before{opacity:.15}.back-to-top:active{transform:translateY(-3px) scale(1.02)}.back-to-top svg{transition:transform var(--transition-base);width:24px;height:24px}.back-to-top:hover svg{transform:translateY(-3px)}@media(max-width:768px){.back-to-top{bottom:var(--space-lg);right:var(--space-md);width:52px;height:52px}.back-to-top:hover{transform:translateY(-4px) scale(1.02)}}@media(max-width:480px){.back-to-top{bottom:var(--space-md);right:var(--space-sm);width:48px;height:48px}.back-to-top svg{width:20px;height:20px}}:root{color-scheme:dark;--bg: #0a0c10;--bg-elevated: #12151c;--panel: rgba(18, 21, 28, .92);--panel-hover: rgba(22, 26, 36, .98);--panel-alt: rgba(20, 26, 38, .85);--accent: #38bdf8;--accent-hover: #5ccbfa;--accent-soft: rgba(56, 189, 248, .15);--accent-glow: rgba(56, 189, 248, .3);--secondary: #818cf8;--secondary-soft: rgba(129, 140, 248, .15);--tertiary: #f472b6;--tertiary-soft: rgba(244, 114, 182, .15);--text: #f1f5f9;--text-secondary: #cbd5e1;--muted: #64748b;--border: rgba(148, 163, 184, .12);--border-hover: rgba(148, 163, 184, .3);--highlight: rgba(79, 70, 229, .18);--success: #34d399;--warning: #fbbf24;--error: #f87171;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .15);--shadow-md: 0 8px 24px rgba(0, 0, 0, .2);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .25);--shadow-glow: 0 0 40px var(--accent-glow);--shadow-glow-accent: 0 0 60px var(--accent-glow), 0 0 100px rgba(56, 189, 248, .1);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;font-family:var(--font-sans);line-height:1.6;font-size:18px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(max-width:480px){:root{font-size:17px}}*,*:before,*:after{box-sizing:border-box}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;background:radial-gradient(ellipse 100% 60% at 50% -30%,rgba(56,189,248,.12),transparent 60%),radial-gradient(ellipse 80% 50% at 100% 0%,rgba(129,140,248,.08),transparent 50%),radial-gradient(ellipse 70% 40% at 0% 80%,rgba(244,114,182,.06),transparent),radial-gradient(ellipse 50% 30% at 0% 100%,rgba(16,185,129,.05),transparent),linear-gradient(180deg,#0a0c10,#0d1017,#0a0c10);background-attachment:fixed;color:var(--text);min-height:100vh;min-height:100dvh;overflow-x:hidden;position:relative}body:before,body:after{content:"";position:fixed;border-radius:50%;filter:blur(100px);opacity:.4;pointer-events:none;animation:float 20s ease-in-out infinite;z-index:-1}body:before{width:600px;height:600px;background:radial-gradient(circle,var(--accent-soft),transparent 70%);top:-200px;right:-100px;animation-delay:0s}body:after{width:500px;height:500px;background:radial-gradient(circle,var(--secondary-soft),transparent 70%);bottom:-150px;left:-100px;animation-delay:-10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative}.layout{display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:clamp(var(--space-lg),3vw,var(--space-2xl));padding:var(--space-xl) clamp(var(--space-md),4vw,var(--space-xl)) var(--space-3xl);max-width:1600px;margin:0 auto;width:100%;flex:1}.content{display:flex;flex-direction:column;gap:var(--space-lg);min-width:0}@media(max-width:1024px){.filters{display:none}}@media(max-width:1200px){.layout{grid-template-columns:minmax(260px,300px) minmax(0,1fr);gap:var(--space-lg)}}@media(max-width:1024px){.layout{grid-template-columns:1fr;padding:var(--space-lg) var(--space-md) var(--space-2xl)}.content{order:2}}@media(max-width:768px){.layout{padding:var(--space-md) var(--space-md) var(--space-xl);gap:var(--space-md)}}@media(max-width:480px){.layout{padding:var(--space-sm) var(--space-sm) var(--space-lg)}.content{gap:var(--space-md)}}@media(max-width:768px){body:before,body:after{display:none}}.glass{background:var(--panel);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border)}.glow-accent{box-shadow:var(--shadow-glow-accent)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
