/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
.launch-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at center,rgba(14,14,26,0.95) 0%,rgba(0,0,0,0.98) 100%);display:flex;justify-content:center;align-items:center;z-index:1000;transition:all 0.5s cubic-bezier(0.4,0,0.2,1);border-radius:1.5rem;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.1);}.launch-overlay.hidden{opacity:0;pointer-events:none;transform:scale(0.95);}.launch-button{font-size:1.2rem;padding:1rem 2rem;border:2px solid var(--current-color,var(--color-accent));background:rgba(255,255,255,0.1);color:var(--color-text);cursor:pointer;border-radius:0.5rem;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);font-weight:bold;font-family:'Arial',sans-serif;backdrop-filter:blur(4px);box-shadow:0 4px 15px rgba(0,0,0,0.3);position:relative;overflow:hidden;}.launch-button::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);transition:left 0.6s ease;}.launch-button:hover{background:rgba(255,255,255,0.2);border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,0.4);}.launch-button:hover::before{left:100%;}.launch-button:active{transform:translateY(0);box-shadow:0 4px 15px rgba(0,0,0,0.3);}.launch-overlay .launch-button{border-color:var(--current-color);color:var(--current-color);}@keyframes pulse{0%,100%{box-shadow:0 4px 15px rgba(0,0,0,0.3);}50%{box-shadow:0 4px 25px var(--current-color,var(--color-accent));}}.launch-button{animation:pulse 2s ease-in-out infinite;}.launch-button:hover{animation:none;}.animation-container:has(.launch-overlay:not(.hidden)) .electron,.animation-container:has(.launch-overlay:not(.hidden)) .nucleus{animation-play-state:paused !important;-webkit-animation-play-state:paused !important;}.animation-container:has(.launch-overlay[style*="display: block"],.launch-overlay[style*="opacity: 1"]) .electron,.animation-container:has(.launch-overlay[style*="display: block"],.launch-overlay[style*="opacity: 1"]) .nucleus{animation-play-state:paused !important;-webkit-animation-play-state:paused !important;}.launch-overlay:not(.hidden) ~ *{pointer-events:none;opacity:0.3;transition:opacity 0.3s ease;}.animation-active *{pointer-events:auto !important;opacity:1 !important;}@media (max-width:768px){.launch-button{font-size:1rem;padding:0.8rem 1.5rem;}}
.solubility-sim{--sim-border:color-mix(in srgb,var(--current-color,var(--color-accent)) 38%,transparent);--sim-soft:color-mix(in srgb,var(--current-color,var(--color-accent)) 12%,transparent);--sim-panel:rgba(10,10,20,0.28);box-sizing:border-box;}.solubility-sim *,.solubility-sim *::before,.solubility-sim *::after{box-sizing:border-box;}.solubility-sim__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;margin-bottom:1.25rem;}.solubility-sim__header h3{margin-top:0;}.solubility-sim__intro,.solubility-sim__note{margin:0.45rem 0 0;line-height:1.55;}.solubility-sim__intro{opacity:0.88;}.solubility-sim__state{flex:0 0 auto;padding:0.55rem 0.8rem;border:1px solid var(--sim-border);border-radius:999px;background:var(--sim-soft);font-size:0.82rem;font-weight:700;text-align:center;}.solubility-sim__state.is-saturated{border-color:color-mix(in srgb,#ebcb8b 65%,transparent);background:color-mix(in srgb,#ebcb8b 15%,transparent);}.solubility-sim__layout{display:grid;grid-template-columns:minmax(220px,0.72fr) minmax(360px,1.6fr);gap:1.25rem;align-items:stretch;}.solubility-sim__controls,.solubility-sim__stage{border:1px solid var(--sim-border);border-radius:16px;background:var(--sim-panel);}.solubility-sim__controls{padding:1rem;}.solubility-sim__field{display:grid;gap:0.45rem;font-weight:700;}.solubility-sim__field select{width:100%;min-height:44px;padding:0.65rem 0.75rem;border:1px solid var(--sim-border);border-radius:10px;background:rgba(10,10,20,0.72);color:var(--color-text,#e0e0e0);font:inherit;}.solubility-sim__field select:focus-visible,.solubility-sim__toggle input:focus-visible,.solubility-sim button:focus-visible{outline:3px solid color-mix(in srgb,var(--current-color,var(--color-accent)) 65%,white);outline-offset:2px;}.solubility-sim__toggle{display:flex;align-items:center;gap:0.65rem;margin-top:1rem;cursor:pointer;line-height:1.35;}.solubility-sim__toggle input{width:1.15rem;height:1.15rem;accent-color:var(--current-color,var(--color-accent));}.solubility-sim__buttons{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;margin-top:0.35rem;}.solubility-sim__buttons .action-button,.solubility-sim__buttons .reset-btn{width:100%;min-width:0;min-height:46px;margin:0;}.solubility-sim__readout{display:grid;gap:0.8rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--sim-border);}.solubility-sim__metric{display:flex;justify-content:space-between;gap:1rem;font-size:0.92rem;}.solubility-sim__metric strong{color:var(--color-text,#e0e0e0);white-space:nowrap;}.solubility-sim__gauge{margin-top:0.2rem;}.solubility-sim__gauge-label{display:flex;justify-content:space-between;gap:1rem;margin-bottom:0.45rem;font-size:0.8rem;opacity:0.86;}.solubility-sim__gauge-track{height:9px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,0.1);}.solubility-sim__gauge-fill{width:100%;height:100%;border-radius:inherit;background:var(--current-color,var(--color-accent));transform:scaleX(0);transform-origin:left;transition:transform 0.25s ease;}.solubility-sim__stage{position:relative;min-height:390px;overflow:hidden;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,0.08),transparent 45%),rgba(7,9,16,0.32);}.solubility-sim__canvas{display:block;width:100%;height:auto;min-height:390px;touch-action:manipulation;}.solubility-sim__legend{position:absolute;right:0.75rem;bottom:0.75rem;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0.4rem 0.8rem;max-width:calc(100% - 1.5rem);padding:0.45rem 0.65rem;border:1px solid rgba(255,255,255,0.12);border-radius:10px;background:rgba(0,0,0,0.46);font-size:0.72rem;backdrop-filter:blur(6px);}.solubility-sim__legend[hidden]{display:none;}.solubility-sim__legend span{display:inline-flex;align-items:center;gap:0.35rem;}.solubility-sim__dot{width:0.62rem;height:0.62rem;border-radius:50%;display:inline-block;}.solubility-sim__dot--a{background:#88c0d0;}.solubility-sim__dot--b{background:#ebcb8b;}.solubility-sim__note{margin-top:1rem;padding:0.75rem 0.9rem;border-left:3px solid var(--current-color,var(--color-accent));background:var(--sim-soft);border-radius:0 10px 10px 0;font-size:0.9rem;}@media (max-width:900px){.solubility-sim__layout{grid-template-columns:1fr;}.solubility-sim__stage{min-height:340px;}.solubility-sim__canvas{min-height:340px;}}@media (max-width:560px){.solubility-sim__header{flex-direction:column;}.solubility-sim__state{align-self:flex-start;}.solubility-sim__buttons{grid-template-columns:1fr;}.solubility-sim__metric,.solubility-sim__gauge-label{align-items:flex-start;flex-direction:column;gap:0.2rem;}.solubility-sim__stage,.solubility-sim__canvas{min-height:300px;}}@media (prefers-reduced-motion:reduce){.solubility-sim__gauge-fill{transition:none;}}
