@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-latin-800-normal-BYj_oED-.woff2) format("woff2"),url(/assets/inter-latin-800-normal-D1mf63XC.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-latin-ext-800-normal-DZJjya6U.woff2) format("woff2"),url(/assets/inter-latin-ext-800-normal-BOMpwxm3.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-ext-700-normal-CZipNAKV.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-700-normal-CxPITLHs.woff) format("woff")}:root{--bg: #070d1a;--bg2: #0d1628;--panel: rgba(17, 27, 48, .82);--line: rgba(148, 163, 184, .16);--line2: rgba(148, 163, 184, .28);--text: #e6edf7;--muted: #8b9ab3;--accent: #2dd4bf;--accent2: #38bdf8;--warn: #f59e0b;--danger: #ef4444;--ok: #22c55e;--acid: #fb7185;--base: #60a5fa;--salt: #fbbf24;--metal: #cbd5e1;--gas: #67e8f9;--organic: #4ade80;--oxide: #fb923c;--household: #c084fc;--element: #2dd4bf;--radius: 16px;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(900px 500px at 85% -10%,rgba(45,212,191,.13),transparent 60%),radial-gradient(700px 500px at -10% 30%,rgba(56,189,248,.1),transparent 60%),linear-gradient(180deg,#070d1a,#0a1222 60%,#070d1a);background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 50% 0,#000 0,transparent 75%);mask-image:radial-gradient(circle at 50% 0,#000 0,transparent 75%)}a{color:var(--accent2)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}code,.formula,.tile-f,.slot-f,.equation{font-family:JetBrains Mono,ui-monospace,monospace}.muted{color:var(--muted)}.small{font-size:.82rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 40px #00000059}.app{max-width:1440px;margin:0 auto;padding:18px 22px 30px;position:relative}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:14px}.brand h1{margin:0;font-size:1.5rem;letter-spacing:-.02em}.brand p{margin:2px 0 0;color:var(--muted);font-size:.9rem}.logo{width:52px;height:52px;border-radius:12px;border:2px solid var(--accent);display:grid;place-items:center;position:relative;background:linear-gradient(145deg,#2dd4bf40,#38bdf81a);box-shadow:0 0 24px #2dd4bf59}.logo span{font-weight:800;font-size:1.35rem;font-family:JetBrains Mono,monospace}.logo small{position:absolute;bottom:3px;font-size:.55rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.levels{display:flex;background:#ffffff0a;border:1px solid var(--line2);border-radius:999px;padding:4px}.levels button{border:0;background:none;padding:8px 16px;border-radius:999px;color:var(--muted);font-weight:600;font-size:.9rem}.levels button.on{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04211d;box-shadow:0 4px 16px #2dd4bf59}.layout{display:grid;grid-template-columns:minmax(330px,430px) 1fr;gap:18px;align-items:start}.right{display:flex;flex-direction:column;gap:18px;min-width:0}.shelf{padding:16px;position:sticky;top:14px;max-height:calc(100vh - 28px);display:flex;flex-direction:column}.shelf h2{font-size:1.05rem;margin:0 0 10px;display:flex;justify-content:space-between;align-items:baseline}.search{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line2);background:#00000040;color:var(--text);font:inherit;outline:none}.search:focus{border-color:var(--accent)}.cats{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 12px}.chip{border:1px solid var(--line2);background:#ffffff08;border-radius:999px;padding:5px 11px;font-size:.8rem;color:var(--text)}.chip.on{border-color:var(--accent);background:#2dd4bf26;color:var(--accent)}.chip.warn{border-color:#ef444480;color:#fca5a5}.chip:hover{border-color:var(--accent)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px;overflow-y:auto;padding:2px 4px 4px 2px}.tile{--c: var(--metal);position:relative;min-height:84px;border-radius:10px;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--c) 22%,transparent),color-mix(in srgb,var(--c) 6%,transparent));display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;text-align:center;transition:transform .12s,box-shadow .12s,border-color .12s}.tile:hover{transform:translateY(-2px);box-shadow:0 6px 18px color-mix(in srgb,var(--c) 30%,transparent)}.tile-f{font-size:1.05rem;font-weight:700;color:color-mix(in srgb,var(--c) 70%,white);line-height:1.1}.tile-n{font-size:.66rem;margin-top:4px;color:var(--text);line-height:1.15}.tile-alias{font-size:.6rem;color:var(--muted);line-height:1.1}.tile-mass{position:absolute;bottom:3px;right:6px;font-size:.58rem;color:var(--muted);font-family:JetBrains Mono,monospace}.tile-ghs{position:absolute;top:3px;right:3px;display:flex}.tile-ghs img{margin-left:-2px}.tile-ghs .more{font-size:.55rem;color:#fca5a5;margin-left:2px;font-weight:700}.tile{padding-bottom:12px!important;padding-top:16px!important}.tile.picked{border:2px solid var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 30%,transparent),0 0 22px color-mix(in srgb,var(--c) 45%,transparent)}.tile.hint:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:11px;border:2px solid var(--accent);animation:pulse 1.8s ease-in-out infinite;pointer-events:none}@keyframes pulse{0%,to{opacity:.25}50%{opacity:1;box-shadow:0 0 14px #2dd4bf99}}.cat-acid{--c: var(--acid)}.cat-base{--c: var(--base)}.cat-salt{--c: var(--salt)}.cat-metal{--c: var(--metal)}.cat-gas{--c: var(--gas)}.cat-organic{--c: var(--organic)}.cat-oxide{--c: var(--oxide)}.cat-household{--c: var(--household)}.cat-element{--c: var(--element)}.bench{padding:18px}.tabs{display:inline-flex;gap:4px;background:#00000040;padding:4px;border-radius:12px;border:1px solid var(--line)}.tabs button{border:0;background:none;padding:9px 18px;border-radius:9px;font-weight:600;color:var(--muted)}.tabs button.on{background:#2dd4bf29;color:var(--accent)}.bench-help{margin:10px 0 14px;font-size:.9rem}.slots{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.slot-wrap{display:flex;align-items:center;gap:6px}.plus.big{font-size:1.6rem;color:var(--muted);padding:0 6px}.slot{position:relative;width:150px;height:104px;border-radius:14px;border:2px dashed var(--line2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px;background:#0000002e}.slot.filled{border-style:solid;border-color:var(--c, var(--line2));background:linear-gradient(160deg,color-mix(in srgb,var(--c) 22%,transparent),#0003);animation:pop .25s ease-out}@keyframes pop{0%{transform:scale(.9);opacity:.4}}.slot-f{font-size:1.45rem;font-weight:700;color:color-mix(in srgb,var(--c) 70%,white)}.slot-n{font-size:.75rem;margin-top:4px}.slot .x{position:absolute;top:4px;right:6px;border:0;background:none;font-size:1.1rem;color:var(--muted)}.conds{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0}.cond{border:1px solid var(--line2);background:#ffffff08;padding:8px 13px;border-radius:10px;font-size:.88rem}.cond.on{border-color:var(--warn);background:#f59e0b26;color:#fde68a;box-shadow:0 0 16px #f59e0b40}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{border:1px solid var(--line2);background:#ffffff0d;padding:10px 18px;border-radius:11px;font-weight:600}.btn.primary{border:0;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04211d;padding:12px 28px;font-size:1rem;box-shadow:0 8px 24px #2dd4bf4d}.btn.primary:not(:disabled):hover{filter:brightness(1.08)}.btn.ghost{background:none}.btn.small{padding:4px 10px;font-size:.8rem}.examples{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.empty{padding:40px 24px;text-align:center}.flask{font-size:3rem}.result{padding:22px;animation:rise .35s ease-out}@keyframes rise{0%{transform:translateY(10px);opacity:0}}.result h2{margin:6px 0 12px;font-size:1.45rem;letter-spacing:-.01em}.result-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.result-type{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#2dd4bf24;color:var(--accent);border:1px solid rgba(45,212,191,.4)}.result-type.precipitation{background:#fbbf241f;color:var(--salt);border-color:#fbbf2466}.result-type.combustion{background:#fb923c24;color:var(--oxide);border-color:#fb923c66}.result-type.decomposition{background:#c084fc24;color:var(--household);border-color:#c084fc66}.result-type.single-displacement,.result-type.synthesis{background:#38bdf824;color:var(--accent2);border-color:#38bdf866}.result-type.neutral,.result-type.none,.result-type.physical{background:#94a3b81f;color:var(--muted);border-color:var(--line2)}.pictorow{display:flex;gap:6px}.equation{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:1.35rem;padding:14px 16px;border-radius:12px;background:#0000004d;border:1px solid var(--line);margin:8px 0}.equation.words{font-family:Inter,system-ui,sans-serif;font-size:1.05rem;background:#2dd4bf0f}.equation .coef{color:var(--warn);margin-right:3px;font-weight:700}.equation .state{font-size:.7em;color:var(--muted);margin-left:1px}.equation .plus{color:var(--muted);margin:0 6px}.side-item{display:inline-flex;align-items:center}.arrow{display:inline-flex;flex-direction:column;align-items:center;margin:0 10px;color:var(--accent);font-size:1.5rem;line-height:1}.arrow small{font-size:.62rem;color:var(--warn);font-family:Inter,sans-serif;margin-bottom:2px;white-space:nowrap}.noreact{color:var(--muted);font-style:italic;font-size:.9em}.lead{font-size:1.05rem;line-height:1.55}.adv-note{border-left:3px solid var(--accent2);padding:8px 14px;background:#38bdf812;border-radius:0 10px 10px 0;line-height:1.5;font-family:JetBrains Mono,monospace;font-size:.86rem}.rsec{margin-top:20px}.rsec h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 10px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.obs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.obs li{display:flex;gap:10px;align-items:flex-start;background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:9px 12px;line-height:1.4}.obs-icon{font-size:1.15rem}.energy-badge{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;border:1px solid}.energy.exo .energy-badge{border-color:#fb923c80;background:linear-gradient(135deg,#ef44442e,#fb923c14)}.energy.endo .energy-badge{border-color:#38bdf880;background:linear-gradient(135deg,#38bdf82e,#2dd4bf0f)}.energy.unknown{color:var(--muted);font-size:.9rem}.energy-icon{font-size:1.8rem}.dh-detail{margin-top:10px}.dh-detail summary{cursor:pointer;font-size:.85rem;color:var(--accent2);margin-bottom:6px}.everyday{background:#4ade8012;border:1px solid rgba(74,222,128,.25);padding:10px 14px;border-radius:10px;margin-top:16px}.safety{display:flex;gap:10px;padding:11px 14px;border-radius:10px;margin-top:12px;align-items:flex-start;line-height:1.45}.safety.caution{background:#f59e0b1a;border:1px solid rgba(245,158,11,.4)}.safety.danger{background:#ef44441f;border:1px solid rgba(239,68,68,.45)}.safety.info{background:#38bdf814;border:1px solid rgba(56,189,248,.3)}.bond-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:8px}.bond-table th{text-align:left;color:var(--muted);font-weight:600;font-size:.75rem;padding:6px 8px;border-bottom:1px solid var(--line2)}.bond-table td{padding:6px 8px;border-bottom:1px solid var(--line)}td.ox{color:#fca5a5}td.red{color:#93c5fd}.sw{display:inline-block;width:18px;height:4px;border-radius:2px;vertical-align:middle;margin-right:6px}.sw.nonpolar{background:#94a3b8}.sw.polar{background:var(--accent2)}.sw.ionic{background:repeating-linear-gradient(90deg,var(--warn) 0 4px,transparent 4px 7px)}.sw.metallic{background:#e2e8f0;box-shadow:0 0 6px #e2e8f0}.sw.double{background:none;border-top:2px solid #94a3b8;border-bottom:2px solid #94a3b8;height:7px}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.78rem;color:var(--muted)}.bond-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.toggle{font-size:.85rem;display:flex;align-items:center;gap:6px;cursor:pointer}.toggle input{accent-color:var(--accent);width:16px;height:16px}.bond-anim{background:#00000038;border:1px solid var(--line);border-radius:14px;padding:14px}.anim-stage{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px}.mol-row{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;transition:opacity .5s}.mol-row.dim{opacity:.35}.mol-cell{display:flex;align-items:center}.anim-arrow{font-size:2rem;color:var(--accent);padding:0 8px}.anim-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px;justify-content:center}.molecule{margin:0;display:flex;flex-direction:column;align-items:center}.molecule svg{overflow:visible;max-width:100%}.molecule figcaption{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--muted);margin-top:2px}.molecule text{font-family:Inter,sans-serif;font-weight:700;pointer-events:none}.molecule .charge{fill:var(--warn);font-weight:800}.bond line{stroke-width:4;stroke-linecap:round;stroke:#94a3b8}.bond.polar line{stroke:var(--accent2)}.bond.ionic line{stroke:var(--warn);stroke-dasharray:.06 .05}.bond.ionic.link line{stroke-width:2.5}.bond.breaking line{stroke:var(--danger)!important;stroke-dasharray:.12 .12;animation:snap 1.3s ease-in forwards}@keyframes snap{0%{opacity:1;stroke-dashoffset:0}60%{opacity:1;stroke-dashoffset:.5}to{opacity:0;stroke-width:1}}.bond.hidden line{opacity:0}.bond.forming line{stroke:var(--ok)!important;stroke-dasharray:1 1;stroke-dashoffset:1;animation:draw .9s ease-out forwards;animation-delay:inherit}@keyframes draw{to{stroke-dashoffset:0}}.e-sea{fill:#e2e8f014;stroke:#e2e8f040;stroke-dasharray:3 4}.electron{fill:#fef08a;filter:drop-shadow(0 0 3px #fde047);animation:drift 3s ease-in-out infinite alternate}.electron.e1{animation-delay:-.6s}.electron.e2{animation-delay:-1.2s}.electron.e3{animation-delay:-1.8s}.electron.e4{animation-delay:-2.4s}@keyframes drift{0%{transform:translate(-14px,-22px)}50%{transform:translate(10px,18px)}to{transform:translate(18px,-12px)}}.ghs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.ghs-card{border:1px solid var(--line);background:#ffffff08;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}.ghs-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.ghs-head .formula{color:var(--accent);margin-left:4px}.signal{font-size:.7rem;font-weight:800;text-transform:uppercase;padding:3px 8px;border-radius:6px;letter-spacing:.06em;white-space:nowrap}.signal.danger{background:var(--danger);color:#fff}.signal.warning{background:var(--warn);color:#231300}.ghs-pics{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pictos{display:inline-flex;gap:3px}.pictos img{background:#fff;border-radius:3px}.tile-ghs .pictos img{border-radius:1px}.hstatements{margin:0;padding-left:0;list-style:none;font-size:.78rem;display:flex;flex-direction:column;gap:3px}.hstatements code{color:var(--warn)}.danger-result{border-color:#ef44448c;box-shadow:0 0 0 1px #ef444440,0 10px 50px #ef44442e}.danger-banner{display:flex;gap:16px;align-items:center;background:repeating-linear-gradient(135deg,#ef444433 0,#ef444433 14px,#ef44441a 14px,#ef44441a 28px);border:2px solid var(--danger);border-radius:14px;padding:16px 18px}.danger-banner h2{margin:0;color:#fecaca}.danger-icon{font-size:2.6rem}.gas{margin:6px 0 0}.needs .hints{padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.needs .hints li{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#f59e0b14;border:1px solid rgba(245,158,11,.35);padding:10px 12px;border-radius:10px}.none-result h2{color:var(--muted)}.stoich-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.stoich-in{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:10px;padding:10px;font-family:JetBrains Mono,monospace;font-size:.85rem}.stoich-in.limiting{border-color:var(--warn);background:#f59e0b12}.inrow{display:flex;align-items:center;gap:6px}.stoich input[type=number]{width:120px;padding:6px 8px;border-radius:8px;border:1px solid var(--line2);background:#0000004d;color:var(--text);font:inherit}.yield{display:flex;align-items:center;gap:10px;margin:12px 0 4px;font-size:.85rem}.yield input{accent-color:var(--accent);flex:0 1 220px}.foot{text-align:center;margin-top:26px;line-height:1.5}@media(max-width:980px){.layout{grid-template-columns:1fr}.right{display:contents}.bench{order:1}.shelf{order:2;position:static;max-height:none}#result{order:3}.tiles{max-height:420px}}@media(max-width:600px){.app{padding:12px 12px 24px}.top{flex-direction:column;align-items:stretch}.levels{justify-content:space-between}.levels button{flex:1;padding:8px 6px;font-size:.82rem}.bench,.result{padding:14px}.slot{width:128px;height:92px}.slot-f{font-size:1.2rem}.slots{justify-content:center}.two-col{grid-template-columns:1fr}.equation{font-size:1.05rem;padding:10px 12px}.tiles{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}.tabs{display:flex}.tabs button,.btn.primary{flex:1}.bond-table{font-size:.78rem}}
