body{background-color:#f0f4f8}@media (max-width:640px){h1{font-size:1.875rem}header p{font-size:1rem}.control-buttons button{padding:.5rem 1rem;font-size:.875rem}}@keyframes move-dots{0%{background-position:0 0}to{background-position:0 20px}}@keyframes march{to{stroke-dashoffset:-15}}.assembly-merged-border{stroke-width:3px;stroke-dasharray:10 5;animation:march 1s linear infinite;fill:none;pointer-events:none}.assembly-word-border{border:2px solid #0ff;box-shadow:0 0 5px #0ff,0 0 10px #0ff,0 0 15px #0ff;background-color:rgba(0,50,50,.2)!important}.assembly-divider{background-image:radial-gradient(#f0f 40%,transparent 45%);background-size:4px 10px;background-repeat:repeat-y;animation:move-dots 1s linear infinite;pointer-events:none}.assembly-divide-button{background-color:rgba(255,0,255,.7);color:white;border:1px solid #fff;border-radius:8px;padding:10px 20px;font-size:18px;font-weight:700;cursor:pointer;transition:all .2s ease;text-shadow:0 1px 3px rgba(0,0,0,.5)}.assembly-divide-button:hover{background-color:rgba(255,0,255,1);box-shadow:0 0 12px #f0f;transform:scale(1.1)}.assembly-controls-container{z-index:50}.assembly-controls{flex-direction:row;gap:8px;pointer-events:auto;padding:12px 16px!important;background-color:rgba(255,255,255,.85);backdrop-filter:blur(5px);border-radius:12px;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 6px rgba(0,0,0,.1)}.assembly-assemble-button,.assembly-controls{display:flex;align-items:center;box-sizing:border-box}.assembly-assemble-button{color:white;background-color:var(--assembly-color,#000);border:2px solid white;border-radius:8px;padding:10px 18px!important;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.2);font-size:1rem}.assembly-assemble-button:hover{transform:scale(1.05);filter:brightness(1.1);box-shadow:0 0 12px var(--assembly-color,#000)}.association-highlight{background:repeating-linear-gradient(45deg,rgba(249,115,22,.15),rgba(249,115,22,.15) 8px,rgba(249,115,22,.25) 0,rgba(249,115,22,.25) 16px);border-radius:8px;pointer-events:none;border:2px dashed #f97316;box-sizing:border-box}.association-associate-button{color:white;background-color:var(--association-color,#f97316);border:2px solid white;border-radius:8px;padding:10px 18px!important;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.2);display:flex;align-items:center;font-size:1rem;box-sizing:border-box}.association-associate-button:hover{transform:scale(1.05);filter:brightness(1.1);box-shadow:0 0 12px var(--association-color,#f97316)}.disassembly-divide-button{background-color:rgba(0,204,255,.7);color:white;border:1px solid #fff;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease;text-shadow:0 1px 2px rgba(0,0,0,.5)}.disassembly-divide-button:hover:not(:disabled){background-color:rgba(0,204,255,1);box-shadow:0 0 12px #0cf;transform:scale(1.1)}.disassembly-divide-button:disabled{background-color:rgba(100,100,100,.5);cursor:not-allowed}.initial-component-text{background-color:rgba(100,120,140,.8);color:white;font-weight:700;font-size:12px;text-shadow:0 1px 2px rgba(0,0,0,.7);pointer-events:none}.alchemy-overlay{position:fixed;inset:0;background-color:rgba(255,255,255,.95);z-index:1000;display:flex;align-items:center;justify-content:center;animation:alchemy-fade-in .4s ease-out forwards}.alchemy-overlay.fade-out{animation:alchemy-fade-out .4s ease-in forwards}@keyframes alchemy-fade-in{0%{opacity:0}to{opacity:1}}@keyframes alchemy-fade-out{0%{opacity:1}to{opacity:0}}.alchemy-container{position:relative}.alchemy-container,.alchemy-formula{display:flex;justify-content:center;align-items:center}.alchemy-formula{gap:2rem;color:#374151;font-size:3rem;font-weight:700;text-shadow:none;animation:formula-in .6s cubic-bezier(.18,.89,.32,1.28) .2s backwards;max-width:80vw;flex-wrap:wrap}@keyframes formula-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.alchemy-side{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;justify-content:center}.alchemy-char-container{background:radial-gradient(circle,rgba(0,0,0,.05) 0,rgba(0,0,0,0) 70%);border-radius:50%;padding:1.5rem}.alchemy-sources .alchemy-char-container{animation:source-char-in .5s ease-out .6s backwards}.alchemy-results .alchemy-char-container{animation:result-char-in .5s cubic-bezier(.18,.89,.32,1.28) 1.5s backwards}@keyframes source-char-in{0%{transform:translateY(50px) scale(.5);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes result-char-in{0%{transform:scale(0) rotate(180deg);opacity:0}to{transform:scale(1) rotate(0deg);opacity:1}}.alchemy-plus{animation:plus-in .3s ease-out .9s backwards}@keyframes plus-in{0%{transform:scale(0)}to{transform:scale(1)}}.alchemy-arrow{animation:arrow-in .4s ease-out 1.2s backwards}@keyframes arrow-in{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}.alchemy-flask{position:absolute;bottom:-20px;width:120px;height:120px}.alchemy-flask-left{left:-150px;animation:flask-in-left .7s cubic-bezier(.18,.89,.32,1.28) .1s backwards}.alchemy-flask-right{right:-150px;animation:flask-in-right .7s cubic-bezier(.18,.89,.32,1.28) .1s backwards}@keyframes flask-in-left{0%{transform:translateX(-100px) rotate(-30deg);opacity:0}to{transform:translateX(0) rotate(0deg);opacity:1}}@keyframes flask-in-right{0%{transform:translateX(100px) rotate(30deg);opacity:0}to{transform:translateX(0) rotate(0deg);opacity:1}}.alchemy-bubbles{position:absolute;bottom:30px;left:50%;width:100%}.alchemy-bubble{position:absolute;background-color:rgba(60,180,220,.7);border-radius:50%;animation:bubble-rise 4s ease-in infinite}@keyframes bubble-rise{0%{transform:translateY(0);opacity:1}to{transform:translateY(-200px);opacity:0}}@media (max-width:1024px){.alchemy-formula{font-size:2.5rem;gap:1.5rem}.alchemy-char-container{padding:1rem}.alchemy-flask{width:100px;height:100px}.alchemy-flask-left{left:-110px}.alchemy-flask-right{right:-110px}}@media (max-width:768px){.alchemy-formula{flex-direction:column;font-size:2rem;gap:1rem}.alchemy-arrow{transform:rotate(90deg);animation:arrow-in-vertical .4s ease-out 1.2s backwards}@keyframes arrow-in-vertical{0%{transform:rotate(90deg) scaleY(0);opacity:0}to{transform:rotate(90deg) scaleY(1);opacity:1}}.alchemy-flask{width:80px;height:80px;bottom:-40px}.alchemy-flask-left{left:-50px}.alchemy-flask-right{right:-50px}}@media (max-width:640px){.alchemy-flask{display:none}.alchemy-char-container{padding:.5rem}}