:root {
--primary: #4CAF50;
--secondary: #FFCA28;
--accent: #FF5722;
--background: #F5F5F5;
--card-bg: #FFFFFF;
--text: #333333;
--text-light: #666666;
--border: #E0E0E0;
--shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
--gradient: linear-gradient(135deg, #4CAF50, #81C784);
--glow: 0 0 8px rgba(76, 175, 80, 0.3);
}
[data-theme="dark"] {
--primary: #4CAF50;
--secondary: #FFCA28;
--accent: #FF5722;
--background: #1E1E1E;
--card-bg: #2A2A2A;
--text: #E0E0E0;
--text-light: #AAAAAA;
--border: #333333;
--shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
--glow: 0 0 8px rgba(76, 175, 80, 0.5);
}
body {
background: linear-gradient(135deg, #e8f5e9 0%, #f5fbe7 100%), url(https://www.transparenttextures.com/patterns/green-dust.png);
background-blend-mode: lighten, overlay;
background-size: auto, 300px 300px;
background-repeat: repeat;
color: var(--text);
font-family: 'Inter', sans-serif;
margin: 0;
padding: 20px;
min-height: 100vh;
transition: background 0.3s, color 0.3s;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
h1 {
font-family: 'Poppins', cursive, sans-serif;
font-size: 2.4rem;
font-weight: 700;
color: #388E3C;
text-align: center;
margin-bottom: 28px;
background: linear-gradient(90deg, #a8e063 0%, #56ab2f 100%);
padding: 18px 18px 18px 60px;
border-radius: 18px;
box-shadow: 0 4px 16px rgba(139,195,74,0.10);
position: relative;
letter-spacing: 1px;
}
h1::before {
content: '';
position: absolute;
left: 18px;
top: 50%;
transform: translateY(-50%);
width: 36px;
height: 36px;
background: url(https://cdn-icons-png.flaticon.com/512/616/616408.png) no-repeat center;
background-size: contain;
opacity: 0.95;
animation: sway 3s ease-in-out infinite;
}
@keyframes sway {
0% { transform: translateY(-50%) rotate(-3deg); }
50% { transform: translateY(-50%) rotate(6deg); }
100% { transform: translateY(-50%) rotate(-3deg); }
}
h2 {
font-family: 'Poppins', cursive, sans-serif;
font-size: 1.5rem;
font-weight: 600;
color: #689f38;
margin-bottom: 18px;
border-left: 6px solid #a8e063;
padding-left: 12px;
letter-spacing: 0.5px;
}
input, select, button {
padding: 10px;
border: 2px solid var(--border);
border-radius: 8px;
background: var(--card-bg);
color: var(--text);
font-family: 'Inter', sans-serif;
font-size: 0.95rem;
transition: border-color 0.3s, background 0.3s, transform 0.2s, box-shadow 0.2s;
}
input:focus, select:focus {
outline: none;
border-color: var(--primary);
background: var(--card-bg);
transform: scale(1.02);
box-shadow: var(--glow);
}
button {
background: linear-gradient(135deg, #a8e063, #56ab2f);
border: none;
color: #fff;
border-radius: 16px 16px 16px 0;
font-family: 'Poppins', sans-serif;
font-size: 1.05rem;
font-weight: 600;
padding: 12px 24px;
margin: 6px 0;
box-shadow: 0 2px 8px rgba(139,195,74,0.10);
cursor: pointer;
transition: background 0.2s, box-shadow 0.2s, transform 0.1s;
}
button:hover {
background: linear-gradient(135deg, #56ab2f, #a8e063);
box-shadow: 0 4px 16px rgba(139,195,74,0.18);
transform: translateY(-2px);
}
.category-toggle, .row, .category-content, .result {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 20px;
padding: 12px;
background: var(--card-bg) url(https://www.transparenttextures.com/patterns/wood-pattern.png) repeat;
background-size: 200px 200px;
background-blend-mode: overlay;
opacity: 0.95;
border-radius: 12px;
box-shadow: var(--shadow);
border: 1px solid transparent;
}
.category-toggle-button, .modifier-button {
background: #e8f5e9;
color: #388E3C;
border: 2px solid #a8e063;
border-radius: 12px 12px 12px 0;
font-family: 'Poppins', sans-serif;
font-size: 1rem;
font-weight: 500;
margin-bottom: 10px;
margin-right: 8px;
padding: 10px 18px;
box-shadow: 0 1px 4px rgba(139,195,74,0.08);
transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.category-toggle-button.active, .modifier-button.active {
background: #a8e063;
color: #fff;
border-color: #56ab2f;
}
.modifier-button.disabled {
background: var(--border);
cursor: not-allowed;
opacity: 0.6;
transform: none;
}
.fruit-button {
background: #f5fbe7;
border: 2px solid #c8e6c9;
border-radius: 14px;
padding: 14px;
width: 110px;
text-align: center;
cursor: pointer;
transition: background 0.2s, border-color 0.2s, transform 0.1s, box-shadow 0.2s;
box-shadow: 0 2px 8px rgba(139,195,74,0.10);
margin-bottom: 10px;
}
.fruit-button img {
width: 60px;
height: 60px;
object-fit: contain;
background: #f5fbe7;
border-radius: 10px;
margin-bottom: 8px;
border: 1.5px solid #a8e063;
}
.fruit-button span {
font-family: 'Poppins', sans-serif;
font-size: 1rem;
color: #388E3C;
font-weight: 500;
}
.fruit-button.active {
background: #a8e063;
border-color: #56ab2f;
color: #fff;
box-shadow: 0 4px 16px rgba(139,195,74,0.18);
}
.fruit-button.active span {
color: #fff;
}
.result {
font-family: 'Poppins', sans-serif;
font-size: 1.4rem;
font-weight: 600;
color: var(--accent);
text-align: center;
margin-top: 20px;
}
.category-content {
display: none;
}
.category-content.active {
display: flex;
}
.hidden {
display: none;
}
#layoutToggle, #themeToggle {
position: fixed;
top: 16px;
right: 16px;
font-family: 'Poppins', sans-serif;
font-size: 0.9rem;
padding: 8px 16px;
z-index: 1000;
margin-bottom: 16px;
}
#themeToggle {
left: 16px;
}
.layout-side-by-side {
display: flex;
gap: 32px;
}
.layout-stacked {
display: block;
}
.layout-stacked .left-panel, .layout-stacked .right-panel {
width: 100%;
margin-bottom: 18px;
}
.left-panel, .right-panel {
margin: 12px 0;
padding: 28px 24px;
background: #fffbe7;
border: 2px solid #dcedc8;
box-shadow: 0 2px 12px rgba(139,195,74,0.08);
}
.tooltip {
position: relative;
}
.tooltip:hover::after {
content: attr(data-tooltip);
position: absolute;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
background: var(--primary);
color: #FFFFFF;
padding: 8px 12px;
border-radius: 6px;
font-family: 'Inter', sans-serif;
font-size: 0.85rem;
white-space: nowrap;
z-index: 10;
box-shadow: var(--shadow);
}
#selectedModifiersFormulaExplain, #selectedModifiersDisplay, #mutationBreakdown {
font-family: 'Inter', sans-serif;
font-size: 0.9rem;
color: var(--text-light);
margin-top: 12px;
padding: 8px;
background: var(--card-bg);
border-radius: 8px;
}
footer {
text-align: center;
margin-top: 40px;
font-family: 'Poppins', cursive, sans-serif;
font-size: 1.1rem;
color: #689f38;
background: url(https://cdn.pixabay.com/photo/2017/01/31/13/14/flowers-2021757_1280.png) repeat-x bottom;
background-size: contain;
padding-bottom: 48px;
border-radius: 0 0 18px 18px;
}
@media (max-width: 900px) {
.layout-side-by-side {
flex-direction: column;
gap: 0;
}
.left-panel, .right-panel {
padding: 16px 8px;
}
.fruit-button {
width: 90px;
}
.fruit-button img {
width: 44px;
height: 44px;
}
h1 {
font-size: 1.5rem;
padding: 12px 12px 12px 36px;
}
h1::before {
width: 22px;
height: 22px;
}
h2 {
font-size: 1.1rem;
}
} .toggle-switch {
display: inline-flex;
align-items: center;
width: 60px;
height: 32px;
position: relative;
margin: 0 10px;
vertical-align: middle;
}
.toggle-switch input[type="checkbox"] {
display: none;
}
.toggle-slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: var(--border);
border-radius: 32px;
transition: background 0.3s;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.toggle-switch input[type="checkbox"]:checked + .toggle-slider {
background: var(--gradient);
}
.toggle-slider:before {
position: absolute;
content: "";
height: 28px;
width: 28px;
left: 2px;
bottom: 2px;
background: #fff;
border-radius: 50%;
transition: transform 0.3s, background 0.3s;
box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.toggle-switch input[type="checkbox"]:checked + .toggle-slider:before {
transform: translateX(28px);
background: #fff;
}
.toggle-slider:focus {
outline: 2px solid var(--primary);
outline-offset: 2px;
}
.toggle-label {
margin-left: 12px;
font-family: 'Inter', sans-serif;
font-size: 1rem;
color: var(--text);
user-select: none;
} .category-toggle-button {
margin-bottom: 8px;
} .modifier-button.active.rainbow { border-color: gold !important; }
.modifier-button.active.gold { border-color: gold !important; }
.modifier-button.active.shocked { border-color: #ffe66d !important; }
.modifier-button.active.frozen { border-color: #72bff5 !important; }
.modifier-button.active.chilled { border-color: #72bff5 !important; }
.modifier-button.active.wet { border-color: #66b6e3 !important; }
.modifier-button.active.choc { border-color: #3d2218 !important; }
.modifier-button.active.moonlit { border-color: #999dff !important; }
.modifier-button.active.bloodlit { border-color: #B00000 !important; }
.modifier-button.active.celestial { border-color: #f04ac3 !important; }
.modifier-button.active.disco { border-color: #f48fd6 !important; }
.modifier-button.active.zombified { border-color: #4bb973 !important; }
.modifier-button.active.plasma { border-color: #9d2d6f !important; }
.modifier-button.active.voidtouched { border-color: #D24CFF !important; }
.modifier-button.active.pollinated { border-color: #ffaa1c !important; }
.modifier-button.active.honeyglazed { border-color: #ffc94d !important; }
.modifier-button.active.dawnbound { border-color: #ffccff !important; }
.modifier-button.active.heavenly { border-color: #F2EB99 !important; }
.modifier-button.active.cooked { border-color: #cc6600 !important; }
.modifier-button.active.burnt { border-color: #1e1e1e !important; }
.modifier-button.active.molten { border-color: #e76a0b !important; }
.modifier-button.active.meteoric { border-color: #403483 !important; }
.modifier-button.active.windstruck { border-color: #a2b9d1 !important; }
.modifier-button.active.sundried { border-color: #cf5d00 !important; }
.modifier-button.active.alienlike { border-color: #5cc6b1 !important; }
.modifier-button.active.verdant { border-color: #386f28 !important; }
.modifier-button.active.paradisal { border-color: #9dc237 !important; }
.modifier-button.active.galactic { border-color: #a96cd4 !important; }
.modifier-button.active.sandy { border-color: #d4bf8d !important; }
.modifier-button.active.clay { border-color: #966450 !important; }
.modifier-button.active.ceramic { border-color: #eab892 !important; }
.modifier-button.active.aurora { border-color: #6258ac !important; }
.modifier-button.active.twisted { border-color: #b8b8b8 !important; }
.modifier-button.active.cloudtouched { border-color: #defcfc !important; }
.modifier-button.active.ancientamber { border-color: #893314 !important; }
.modifier-button.active.amber { border-color: #ffc000 !important; }
.modifier-button.active.fried { border-color: #974d1c !important; }
.modifier-button.active.oldamber { border-color: #ac6e5e !important; }