@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.App{min-height:100vh;padding:0;background:#f8fafc;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading-screen{position:fixed;inset:0;background:#f8fafc;display:flex;align-items:center;justify-content:center;z-index:10000;opacity:1;transition:opacity .3s ease-out}.loading-screen.fade-out{opacity:0}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.loading-star{animation:pulse 2s ease-in-out infinite}.loading-star svg{filter:drop-shadow(0 4px 8px rgba(255,215,0,.3))}.loading-title{font-size:2rem;font-weight:700;color:#0f172a;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.loading-subtitle{font-size:1rem;color:#64748b;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:gold;border-radius:50%;animation:spin 1s linear infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}*{-webkit-tap-highlight-color:transparent}button,.discovered-emotion,.base-emotion{touch-action:manipulation}.header{background:#fff;padding:1rem 1.5rem;border-bottom:1px solid #e2e8f0;z-index:100}.sticky-crafting-bar{position:fixed;bottom:0;left:0;right:0;z-index:10002;background:#fff;border-top:1px solid #e2e8f0;box-shadow:0 -2px 4px #0000000d;padding:.75rem 1.5rem;animation:slideUp .3s ease-out;padding-bottom:max(.75rem,env(safe-area-inset-bottom));overflow:visible}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.sticky-crafting-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;overflow:visible}.sticky-crafting-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.sticky-crafting-label{font-size:.8125rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.sticky-crafting-items{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.sticky-crafting-items::-webkit-scrollbar{display:none}.sticky-crafting-item{padding:.375rem .75rem;background:var(--emotion-color, #667eea);color:#fff;border-radius:4px;font-size:.8125rem;font-weight:500;white-space:nowrap;animation:fadeInScale .3s ease-out;position:relative;overflow:visible}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.sticky-crafting-scroll{background:#f8fafc;border:1px solid #e2e8f0;color:#64748b;padding:.375rem .75rem;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .15s ease;white-space:nowrap;line-height:1}.sticky-crafting-scroll:hover{background:#e2e8f0;color:#0f172a}.toast-notification{position:fixed;bottom:2rem;right:2rem;background:#0f172a;color:#fff;padding:.875rem 1.25rem;border-radius:6px;box-shadow:0 4px 12px #0003;display:flex;align-items:center;gap:.75rem;z-index:1000;animation:toastSlideIn .3s ease-out;max-width:300px}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{font-size:1.125rem;color:#10b981;font-weight:700}.toast-message{font-size:.875rem;font-weight:500;flex:1}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;overflow:hidden}.header h1{margin:0;font-size:1.75rem;font-weight:700;color:#0f172a;letter-spacing:-.01em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.header-subtitle{margin:.25rem 0 0;font-size:.875rem;color:#64748b;font-weight:400;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.header-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;flex-shrink:1;min-width:0}.header-finder-button{border:1px solid #e2e8f0;background:#fff;border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #00000014;flex-shrink:0;transition:background-color .15s ease}.stats{display:flex;gap:1rem;flex-shrink:0}.nav-button,.back-button{background:#fff;color:#0f172a;border:1px solid #e2e8f0;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease;white-space:nowrap}.nav-button:hover,.back-button:hover{background:#f8fafc;border-color:#cbd5e1}.stat-item{text-align:right}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:#0f172a;line-height:1.2}.stat-label{display:block;font-size:.75rem;color:#64748b;font-weight:400;margin-top:.125rem;text-transform:uppercase;letter-spacing:.05em}.header-controls{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.type-filter{display:flex;gap:.25rem;background:#f1f5f9;padding:.25rem;border-radius:8px;border:1px solid #e2e8f0}.filter-button{padding:.45rem .9rem;border:1px solid #e2e8f0;background:#e2e8f0;color:#475569;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;transition:all .15s ease;white-space:nowrap;text-transform:capitalize}.filter-button:hover{background:#e5e7eb;border-color:#d8dee6}.filter-button.active{background:#667eea;color:#fff;border-color:#667eea;box-shadow:0 1px 2px #0000001f}.filter-button.active:hover{background:#5568d3;border-color:#5568d3}.main-content{max-width:1200px;margin:0 auto;padding:1.5rem;padding-bottom:100px}.search-container{position:relative;width:250px}.search-input{width:100%;padding:.5rem 2.5rem .5rem 1rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.8125rem;color:#0f172a;background:#fff;transition:all .15s ease;box-sizing:border-box}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.search-input::placeholder{color:#94a3b8}.search-clear-button{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#94a3b8;font-size:1.25rem;line-height:1;cursor:pointer;padding:.25rem;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s ease}.search-clear-button:hover{background:#f1f5f9;color:#64748b}.section{background:#fff;border-radius:8px;padding:1.5rem;border:1px solid #e2e8f0;margin-bottom:1.5rem;overflow:visible}.section:last-child{margin-bottom:0}.section h2{color:#0f172a;font-size:1.25rem;margin-top:0;margin-bottom:1rem;font-weight:600;letter-spacing:-.01em}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.section-actions{display:flex;gap:.75rem;align-items:center}.crafting-section{margin-bottom:1.5rem}.crafting-instructions{color:#64748b;font-size:.875rem;margin-bottom:1rem;font-weight:400}.crafting-area{margin:1rem 0}.crafting-slots-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;min-height:80px;padding:1rem;background:#f8fafc;border-radius:6px;border:1px dashed #cbd5e1}.empty-crafting-area{width:100%;text-align:center;padding:1.5rem;color:#94a3b8;font-size:.875rem}.empty-crafting-area p{margin:0}.crafting-slot-wrapper{display:flex;align-items:center;gap:.75rem}.crafting-slot{min-width:140px;min-height:60px;border:1px solid var(--emotion-border-color, var(--emotion-color));border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem;background:#fff;transition:all .15s ease;position:relative;isolation:isolate}.crafting-slot:before{content:"";position:absolute;inset:-2px;border-radius:6px;padding:2px;background:var(--emotion-color);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;z-index:-1}.crafting-slot:not([style*=linear-gradient]):before{display:none}.crafting-slot.filled{animation:none}.crafting-slot.just-added{animation:slotAdded .6s ease-out}@keyframes slotAdded{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.plus-icon-small{font-size:1.25rem;font-weight:300;color:#94a3b8}.slot-emotion{background:var(--emotion-color);color:#fff;padding:.5rem 1rem;border-radius:4px;font-weight:600;font-size:.875rem;position:relative}.slot-composition{margin-top:.5rem;padding:.5rem;background:#fffffff2;border-radius:4px;font-size:.75rem}.slot-composition-label{font-size:.6875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem}.slot-composition-list{display:flex;flex-direction:column;gap:.25rem}.slot-composition-item{display:flex;align-items:center;gap:.375rem;font-size:.75rem}.slot-composition-emotion{flex:1;font-weight:500;color:#0f172a}.slot-composition-percentage{font-weight:600;color:#475569;font-size:.6875rem;min-width:35px;text-align:right}.remove-button{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;background:#0f172a;color:#fff;border:2px solid #ffffff;font-size:.875rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease;z-index:10;box-shadow:0 2px 4px #00000026;padding:0;margin:0;font-weight:600}.remove-button:hover{background:#475569}.crafting-controls{display:flex;justify-content:center;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.combine-button{background:#0f172a;color:#fff;border:none;padding:.625rem 1.5rem;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:background .15s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.combine-button:hover:not(:disabled){background:#1e293b}.combine-button:active:not(:disabled){background:#0f172a}.combine-button:disabled{opacity:.4;cursor:not-allowed}.loading-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.loading-result{margin-top:1.5rem;padding:1.5rem;background:#f8fafc;border-radius:6px;text-align:center;border:1px solid #e2e8f0;display:flex;flex-direction:column;align-items:center;gap:.75rem}.loading-spinner-large{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.loading-result p{margin:0;color:#64748b;font-size:.875rem;font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}.clear-button-small{background:#fff;color:#0f172a;border:1px solid #e2e8f0;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease}.clear-button-small:hover{background:#f8fafc;border-color:#cbd5e1}.result-display{margin-top:1.5rem;padding:1.5rem;background:#fff;border-radius:8px;text-align:center;border:1px solid #e2e8f0;position:relative;max-width:700px;margin-left:auto;margin-right:auto}.result-display.new-discovery{border-color:#10b981}.new-badge{position:absolute;top:.75rem;right:.75rem;background:#10b981;color:#fff;padding:.25rem .75rem;border-radius:4px;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.result-label{font-size:.75rem;color:#64748b;font-weight:500;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;margin-top:0}.result-header{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;margin-top:.5rem}.result-emotion{font-size:2rem;font-weight:700;color:#0f172a;letter-spacing:-.02em;margin-bottom:0}.result-display.new-discovery .result-emotion{color:#10b981}.result-type-badge{display:inline-block;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;background:#667eea;color:#fff;border-radius:4px;text-transform:capitalize}.result-combination{margin-top:.75rem;margin-bottom:1rem;padding:.75rem 1rem;background:transparent;border-radius:6px;font-size:.875rem;color:#475569;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.25rem}.combination-emotion{font-weight:500;color:#0f172a}.combination-plus{color:#64748b;margin:0 .25rem}.combination-equals{color:#64748b;margin:0 .5rem}.combination-result{font-weight:600;color:#0f172a}.result-formula{font-size:.875rem;color:#64748b;font-weight:400;margin-top:.75rem;padding:.75rem;background:#fff;border-radius:4px;display:inline-block}.result-dimensions{padding:1rem;background:transparent;border-radius:6px;max-width:600px;margin:0 auto}.result-dimensions-label{font-size:.8125rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;display:flex;align-items:center;gap:.75rem}.result-dimensions-tags{display:flex;flex-wrap:wrap;gap:.5rem}.result-dimension-tag{display:inline-flex;align-items:center;padding:.375rem .75rem;background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-size:.8125rem;color:#475569}.result-dimension-tag .dimension-name{font-weight:600;color:#64748b;margin-right:.25rem}.result-dimension-tag .dimension-value{color:#0f172a;font-weight:500}.result-description{margin-top:0;margin-bottom:1rem;padding:1rem;background:transparent;border-radius:6px;font-size:1rem;line-height:1.7;color:#0f172a;font-weight:400;max-width:600px;margin-left:auto;margin-right:auto;text-align:left}.result-description-label{font-size:.8125rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.result-ratios{margin-top:0;margin-bottom:1rem;padding:1rem;background:transparent;border-radius:6px;max-width:600px;margin-left:auto;margin-right:auto;text-align:left}.result-ratios-label{font-size:.8125rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.result-ratios-list{display:flex;flex-direction:column;gap:.75rem}.result-ratio-item{display:flex;align-items:center;gap:.75rem;font-size:.875rem;padding:.25rem 0}.result-ratio-emotion{display:flex;align-items:center;gap:.5rem;min-width:120px;font-weight:500;color:#0f172a}.result-ratio-bar-container{flex:1;height:20px;background:#e2e8f0;border-radius:10px;overflow:hidden;position:relative}.result-ratio-bar{height:100%;border-radius:10px;transition:width .3s ease;min-width:2px}.result-ratio-percentage{min-width:50px;text-align:right;font-weight:600;color:#475569;font-size:.8125rem}.no-result{margin-top:1.5rem;padding:1rem;background:#fef2f2;border-radius:6px;text-align:center;border:1px solid #fecaca}.no-result p{margin:0;color:#64748b;font-size:.875rem;font-weight:400}.emotions-list{display:flex;flex-wrap:wrap;gap:.75rem;padding:0;position:relative}.mixed-section{overflow:visible}.emotions-list::-webkit-scrollbar{width:6px}.emotions-list::-webkit-scrollbar-track{background:#f8fafc}.emotions-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.emotions-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.emotion-wrapper{position:relative;display:inline-block;margin:0;flex-shrink:0;transition:opacity .3s ease,transform .3s ease;overflow:visible}.emotion-wrapper.unavailable{opacity:.3;pointer-events:none;transform:scale(.95)}.emotion-badge{position:absolute;top:-8px;right:-8px;font-size:.625rem;line-height:1;pointer-events:none;font-weight:700;background:#fffffff2;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #00000026;z-index:10;border:2px solid #ffffff}.emotion-badge.combinable-badge{color:#fff;border:2px solid #ffffff;background:#fbbf24;width:18px;height:18px;font-size:.625rem;font-weight:700;line-height:1;box-shadow:0 2px 4px #00000026;top:-8px;right:-8px;border-radius:50%}.emotion-badge.undiscovered-badge{color:#f59e0b;border-color:#f59e0b}.emotion-badge.tried-badge{color:#eab308;border-color:#eab308}.emotion-intensity-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:1;background:#0009;color:#fff;border-radius:9px;margin-left:.25rem;flex-shrink:0}.discovered-emotion{background:#fff;border:1px solid var(--emotion-border-color, var(--emotion-color));padding:.5rem .875rem;border-radius:4px;font-weight:600;font-size:.875rem;color:#0f172a;cursor:pointer;transition:all .15s ease,opacity .3s ease,transform .3s ease;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;letter-spacing:.01em;box-sizing:border-box;min-height:2.5rem;white-space:nowrap;line-height:1.4;isolation:isolate}.discovered-emotion.unavailable{opacity:.3;cursor:not-allowed;pointer-events:none;transform:scale(.95)}.discovered-emotion.unavailable.highlighted{pointer-events:auto;cursor:pointer}.discovered-emotion:hover:not(.highlighted):not(.unavailable){transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.discovered-emotion:before{content:"";position:absolute;inset:-2px;border-radius:4px;padding:2px;background:var(--emotion-color);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;z-index:-1}.discovered-emotion:not([style*=linear-gradient]):before{display:none}.discovered-emotion:hover:not(.disabled){background:var(--emotion-color);color:#fff;border-color:var(--emotion-border-color, var(--emotion-color))}.discovered-emotion.highlighted{background:var(--emotion-color);color:#fff;border-color:var(--emotion-border-color, var(--emotion-color));border-width:1px}.discovered-emotion.disabled,.discovered-emotion:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.discovered-emotion{position:relative}.emotions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,180px));gap:.75rem;position:relative;margin-top:0;overflow:visible}.emotions-grid .emotion-wrapper{position:relative;z-index:1;overflow:visible}.emotions-grid .emotion-wrapper:hover{z-index:10000}.base-emotion{background:#fff;border:1px solid var(--emotion-border-color, var(--emotion-color));padding:.5rem .875rem;border-radius:4px;font-weight:600;font-size:.875rem;color:#0f172a;cursor:pointer;transition:all .15s ease,opacity .3s ease,transform .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;box-sizing:border-box;position:relative;min-height:2.5rem;line-height:1.4;letter-spacing:.01em;isolation:isolate}.base-emotion.unavailable{opacity:.3;cursor:not-allowed;pointer-events:none;transform:scale(.95)}.base-emotion.unavailable.highlighted{pointer-events:auto;cursor:pointer}.base-emotion:before{content:"";position:absolute;inset:-2px;border-radius:4px;padding:2px;background:var(--emotion-color);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;z-index:-1}.base-emotion:not([style*=linear-gradient]):before{display:none}.base-emotion:hover:not(.disabled):not(.highlighted):not(.unavailable){background:var(--emotion-color);color:#fff;border-color:var(--emotion-border-color, var(--emotion-color));transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.base-emotion.highlighted{background:var(--emotion-color);color:#fff;border-color:var(--emotion-border-color, var(--emotion-color));border-width:1px}.base-emotion.disabled,.base-emotion:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.emotion-shape-icon{display:inline-block;vertical-align:middle;opacity:.8;transition:opacity .15s ease}.base-emotion:hover .emotion-shape-icon,.base-emotion.highlighted .emotion-shape-icon{opacity:1}.combinable-indicator,.base-emotion .combinable-indicator,.discovered-emotion .combinable-indicator{position:absolute;top:-8px;right:-8px;font-size:.625rem;color:#fff;line-height:1;pointer-events:none;font-weight:700;background:#fbbf24;border:2px solid #ffffff;width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #00000026;border-radius:50%;z-index:10}.undiscovered-indicator,.base-emotion .undiscovered-indicator,.discovered-emotion .undiscovered-indicator{position:absolute;top:.375rem;right:.375rem;font-size:.625rem;color:#f59e0b;line-height:1;pointer-events:none;background:#fffffff2;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0000001a;border:1px solid rgba(245,158,11,.2);z-index:10}.base-emotion:hover .combinable-indicator,.base-emotion:hover .undiscovered-indicator,.discovered-emotion:hover .combinable-indicator,.discovered-emotion:hover .undiscovered-indicator{background:#fffffffa;box-shadow:0 1px 3px #00000026}.reset-button{background:#fff;color:#0f172a;border:1px solid #e2e8f0;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease}.reset-button:hover{background:#f8fafc;border-color:#cbd5e1}.sort-button-wrapper{position:relative;display:inline-block}.sort-button{background:#fff;color:#0f172a;border:1px solid #e2e8f0;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease}.sort-button:hover{background:#f8fafc;border-color:#cbd5e1}.sort-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#0f172a;color:#fff;padding:.75rem 1rem;border-radius:6px;font-size:.8125rem;line-height:1.4;white-space:nowrap;box-shadow:0 4px 12px #00000026;z-index:1000;pointer-events:none;max-width:280px;white-space:normal}.sort-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#0f172a}.clear-highlight-button{background:#fff;color:#0f172a;border:1px solid #e2e8f0;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease}.clear-highlight-button:hover{background:#f8fafc;border-color:#cbd5e1}.legend-button-wrapper{position:relative;display:inline-block}.legend-button{background:#fff;color:#0f172a;border:1px solid #e2e8f0;padding:.5rem .75rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.legend-button:hover{background:#f8fafc;border-color:#cbd5e1}.legend-popover{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#0f172a;color:#fff;padding:1rem;border-radius:6px;font-size:.8125rem;line-height:1.4;min-width:280px;z-index:1000;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.legend-popover:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#0f172a}.legend-popover h3{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.05em}.legend-popover .legend-items{display:flex;flex-direction:column;gap:.5rem}.legend-popover .legend-item{display:flex;align-items:center;gap:.75rem}.legend-popover .legend-text{font-size:.8125rem;color:#ffffffe6;line-height:1.4}.legend h3{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#0f172a;text-transform:uppercase;letter-spacing:.05em}.legend-items{display:flex;flex-direction:column;gap:.5rem}.legend-item{display:flex;align-items:center;gap:.75rem}.legend-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.legend-indicator.tried-indicator{color:#eab308;border:2px solid #eab308;border-radius:50%;font-size:.625rem;font-weight:700;background:#fffffff2;box-shadow:0 1px 2px #0000001a}.legend-text{font-size:.8125rem;color:#475569;line-height:1.4}.combinable-example,.unexplored-example{border:2px solid;border-radius:4px;background:#fff}.highlight-hint{margin:0 0 1rem;padding:.75rem 1rem;background:#f8fafc;border-radius:6px;color:#64748b;font-size:.875rem;border-left:3px solid #cbd5e1}.highlight-hint strong{color:#0f172a;font-weight:600}.empty-state{text-align:center;color:#94a3b8;font-size:.875rem;padding:1.5rem;margin:0}.emotion-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(0);background:#0f172a;color:#fff;padding:.75rem 1rem;border-radius:6px;min-width:220px;max-width:400px;box-shadow:0 4px 12px #00000026;z-index:10000;pointer-events:none;margin-bottom:0;word-wrap:break-word;white-space:normal}.emotion-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#0f172a}.tooltip-title{font-weight:600;font-size:.875rem;margin-bottom:.5rem;color:#fff}.tooltip-description{font-size:.8125rem;line-height:1.6;color:#ffffffe6;word-wrap:break-word;margin-bottom:.5rem}.tooltip-action{margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.2);font-size:.75rem;color:#ffffffe6;font-weight:500}.emotions-list .emotion-wrapper{position:relative;z-index:1;overflow:visible}.emotions-list .emotion-wrapper:hover{z-index:10000}.emotions-list .emotion-tooltip,.emotions-grid .emotion-tooltip{bottom:calc(100% + 8px);top:auto;position:absolute;z-index:10001;pointer-events:none;white-space:normal;max-width:min(380px,calc(100vw - 2rem));word-wrap:break-word;left:50%;transform:translate(-50%);right:auto;margin-left:max(calc(-190px + 1rem),0px)}.emotions-list .emotion-tooltip:after,.emotions-grid .emotion-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#0f172a;border-bottom-color:transparent}.emotion-popup-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out;padding:1rem;overflow:visible}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.emotion-popup-content{background:#fff;border-radius:12px;padding:0;max-width:900px;width:100%;max-height:85vh;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideUp .3s ease-out;overflow:visible}.emotion-popup-content-inner{padding:2rem;max-height:85vh;overflow-y:auto;overflow-x:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.emotion-popup-close{position:absolute;top:-16px;right:-16px;width:32px;height:32px;border-radius:50%;background:#f1f5f9;border:2px solid #ffffff;color:#64748b;font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;padding:0;z-index:10001;box-shadow:0 2px 8px #00000026}.emotion-popup-close:hover{background:#e2e8f0;color:#0f172a}.emotion-popup-title{font-size:1.5rem;font-weight:600;color:#0f172a;margin-bottom:1rem}.emotion-popup-description{font-size:1rem;line-height:1.6;color:#475569}.finder-search-container{position:relative;width:200px;flex-shrink:1;min-width:150px}.finder-search-input{width:100%;padding:.625rem 2.5rem .625rem 1rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#0f172a;background:#fff;transition:all .15s ease;box-sizing:border-box}.finder-search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.finder-search-input::placeholder{color:#94a3b8}.finder-search-clear-button{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#94a3b8;font-size:1.25rem;line-height:1;cursor:pointer;padding:.25rem;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s ease}.finder-search-clear-button:hover{background:#f1f5f9;color:#64748b}.finder-text-search-container{position:relative;width:100%}.finder-text-search-input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#0f172a;background:#fff;transition:all .15s ease;box-sizing:border-box}.finder-text-search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.finder-text-search-input::placeholder{color:#94a3b8}.finder-text-search-clear-button{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#94a3b8;font-size:1.25rem;line-height:1;cursor:pointer;padding:.25rem;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s ease}.finder-text-search-clear-button:hover{background:#f1f5f9;color:#64748b}.finder-description-text{margin:0;font-size:.8125rem;color:#64748b;line-height:1.5;display:block;margin-top:.25rem}.finder-description-toggle{background:none;border:none;display:none;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;font-weight:400;color:#64748b;padding:.625rem .625rem .625rem .25rem;min-width:44px;min-height:44px;transition:transform .15s ease;flex-shrink:0;line-height:1;margin:0;vertical-align:middle}.finder-description-toggle:hover{color:#475569}.finder-description-toggle.rotated{transform:rotate(90deg)}@media (max-width: 768px){.finder-description-text{font-size:.75rem}.finder-description-toggle{display:flex}}.finder-mode-toggle{display:flex;gap:.5rem;background:#f1f5f9;padding:.375rem;border-radius:10px;border:1px solid #e2e8f0;width:fit-content}.finder-mode-button{padding:.625rem 1.25rem;border:1px solid transparent;background:transparent;color:#64748b;font-size:.9375rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-width:120px;text-align:center}.finder-mode-button:hover{background:#fff9;color:#475569}.finder-mode-button.active{background:#fff;color:#667eea;border-color:#667eea;box-shadow:0 2px 4px #667eea26;font-weight:700}.finder-mode-button.active:hover{background:#fff;color:#5568d3;border-color:#5568d3;box-shadow:0 2px 6px #667eea33}@media (max-width: 768px){.header{padding:.875rem 1rem;overflow:hidden}.header-content{gap:.75rem;align-items:flex-start}.header-content>div:first-child{flex:1 1 auto;min-width:0;max-width:100%}.header h1{font-size:1.5rem;line-height:1.2}.header-subtitle{font-size:.8125rem;margin-top:.125rem}.header-actions{gap:.75rem;width:100%;justify-content:flex-end;margin-top:.5rem}.header-finder-button{width:36px;height:36px}.finder-mode-toggle{gap:.375rem}.finder-mode-button{min-width:100px;padding:.5rem 1rem;font-size:.8125rem}.stats{gap:.5rem}.stat-item{text-align:center}.stat-value{font-size:1.25rem}.stat-label{font-size:.6875rem}.main-content{padding:1rem;padding-bottom:160px}.section{padding:1rem;margin-bottom:1rem}.section h2{font-size:1.125rem;margin-bottom:.75rem}.crafting-slots-container{flex-direction:column;gap:.75rem;padding:.75rem}.crafting-slot{min-width:100%}.crafting-slot-wrapper{flex-direction:column;width:100%}.plus-icon-small{transform:rotate(90deg)}.result-emotion{font-size:1.75rem}.emotions-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.sticky-crafting-bar{padding:.75rem 1rem;overflow:visible}.sticky-crafting-content{overflow:visible;flex-direction:column;align-items:stretch;gap:.75rem}.sticky-crafting-label{font-size:.75rem}.sticky-crafting-items{flex-wrap:wrap;gap:.375rem;max-height:60px;overflow-x:visible}.sticky-crafting-item{font-size:.75rem;padding:.375rem .625rem;overflow:visible}.combine-button,.clear-button-small,.sticky-crafting-scroll{min-height:44px;padding:.625rem 1rem;font-size:.875rem}.combine-button{flex:1}.sticky-crafting-actions{width:100%;flex-wrap:wrap}.sticky-crafting-actions>*{flex:1;min-width:0}.sticky-crafting-scroll{flex:0 0 auto;min-width:44px}.base-emotion,.discovered-emotion{min-height:44px;padding:.625rem .75rem}.result-display{padding:1rem;margin-top:1rem}.result-description,.result-dimensions,.result-ratios{padding:.75rem}}@media (max-width: 480px){.header{padding:.75rem .875rem;overflow:hidden}.header-content{gap:.5rem;flex-direction:column;align-items:stretch}.header-content>div:first-child{flex:0 0 auto;width:100%;max-width:100%}.header h1{font-size:1.25rem;line-height:1.2}.header-subtitle{font-size:.75rem;margin-top:.125rem}.header-actions{gap:.5rem;width:100%;justify-content:space-between;margin-top:.5rem;flex-wrap:wrap}.header-finder-button{width:32px;height:32px;font-size:.875rem;flex-shrink:0}.finder-mode-toggle{gap:.375rem;width:100%;justify-content:flex-end}.finder-mode-button{min-width:90px;padding:.5rem .75rem;font-size:.75rem}.reset-button{padding:.5rem .75rem;font-size:.75rem}.stats{order:-1;gap:.375rem;flex:0 0 auto}.stat-item{text-align:center}.stat-value{font-size:1.125rem}.stat-label{font-size:.625rem}.main-content{padding:.75rem;padding-bottom:180px}.section{padding:.875rem;margin-bottom:.875rem}.section h2{font-size:1rem;margin-bottom:.75rem}.search-container{width:100%;margin-bottom:.75rem}.section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.section-actions{width:100%;flex-wrap:wrap}.crafting-slots-container{padding:.5rem;min-height:60px}.crafting-slot{min-height:50px;min-width:100%}.slot-emotion{padding:.5rem .875rem;font-size:.8125rem}.result-emotion{font-size:1.5rem}.emotions-grid{grid-template-columns:1fr;gap:.5rem}.emotion-tooltip{min-width:180px;max-width:calc(100vw - 2rem);z-index:10000}.emotions-list .emotion-tooltip,.emotions-grid .emotion-tooltip{max-width:calc(100vw - 2rem);z-index:10001}.emotions-list .emotion-tooltip,.emotions-grid .emotion-tooltip{left:auto;right:0;transform:none;margin-left:0}.emotions-list .emotion-wrapper:nth-child(-n+3) .emotion-tooltip,.emotions-grid .emotion-wrapper:nth-child(-n+3) .emotion-tooltip{left:0;right:auto;transform:none}.emotion-popup-overlay{padding:.5rem}.emotion-popup-content{padding:1.5rem;max-width:100%}.emotion-popup-title{font-size:1.25rem}.emotion-popup-description{font-size:.9375rem}.finder-search-container{width:100%;min-width:0}.finder-search-input{font-size:.8125rem;padding:.5rem 2.25rem .5rem .875rem}.sticky-crafting-bar{padding:.625rem .75rem;overflow:visible}.sticky-crafting-content{overflow:visible;gap:.625rem}.sticky-crafting-label{font-size:.6875rem}.sticky-crafting-items{max-height:50px;gap:.25rem;overflow-x:visible}.sticky-crafting-item{font-size:.6875rem;padding:.25rem .5rem;overflow:visible}.sticky-crafting-actions{width:100%;flex-wrap:wrap;gap:.375rem}.combine-button,.clear-button-small,.sticky-crafting-scroll{min-height:44px;padding:.5rem .75rem;font-size:.8125rem}.combine-button{flex:1 1 auto;min-width:120px}.clear-button-small{flex:0 1 auto}.sticky-crafting-scroll{flex:0 0 auto;min-width:44px}.base-emotion,.discovered-emotion{min-height:44px;padding:.5rem .625rem;font-size:.8125rem}.result-display{padding:.875rem}.result-description,.result-dimensions,.result-ratios{padding:.625rem;font-size:.875rem}.stats{flex-direction:column;gap:.5rem}.stat-item{text-align:left}}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f8fafc}#root{width:100%;min-height:100vh}
