:root{--primary-color: #000000;--accent-color: #333333;--bg-color: #ffffff;--glass-bg: rgba(255, 255, 255, .4);--glass-border: rgba(0, 0, 0, .05);--glass-blur: 24px;--font-main: "Outfit", sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}body{font-family:var(--font-main);background:radial-gradient(circle at 50% 50%,#0a0a1a,#000);color:#fff;overflow:hidden;width:100vw;height:100vh}#canvas-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#ui-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:2.5rem}#ui-overlay>*{pointer-events:auto}header{align-self:flex-start;padding:1.25rem 0}h1{font-weight:700;font-size:1.5rem;letter-spacing:.1rem;color:#000;margin-bottom:.25rem}#status{font-size:.9rem;color:#666;font-weight:500}#controls{align-self:flex-end;position:absolute;top:50%;right:3rem;transform:translateY(-50%);width:280px;background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:2rem;border-radius:20px;border:1px solid rgba(0,0,0,.05);box-shadow:0 10px 40px #0000000d;display:flex;flex-direction:column;gap:1.5rem}#controls h3{font-size:.75rem;color:#888;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:.8rem;font-weight:600;border-bottom:1px solid #eee;padding-bottom:.5rem}.template-container{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:1.5rem}.template-btn{background:#f5f5f7;border:none;color:#333;padding:.8rem .5rem;border-radius:10px;font-family:var(--font-main);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-transform:capitalize}.template-btn:hover{background:#e5e5ea;transform:none;color:#000}.template-btn.active{background:#000;color:#fff;box-shadow:0 4px 10px #0003}input[type=color]{width:100%;height:48px;border:1px solid #eee;border-radius:10px;background:#fff;cursor:pointer;padding:2px}.info-btn{position:absolute;bottom:30px;right:30px;width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;background:#fff;box-shadow:0 4px 12px #0000001a;color:#000;font-weight:700;cursor:pointer;border:none;transition:transform .2s}.info-btn:hover{transform:scale(1.1)}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:200;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .3s ease}.modal.hidden{display:none;opacity:0;pointer-events:none}.glass-panel{background:#fff;box-shadow:0 20px 50px #0000001a;border-radius:24px;padding:40px;max-width:400px;text-align:left;color:#000;position:relative;border:1px solid #f0f0f0}.close-btn{position:absolute;top:20px;right:20px;font-size:24px;cursor:pointer;color:#aaa}.close-btn:hover{color:#000}.modal-content h2{color:#000;margin-bottom:20px;font-size:1.5rem}.modal-content ul{list-style:none;padding:0}.modal-content li{margin-bottom:12px;font-size:1rem;color:#444}.modal-content strong{color:#000}#menu-btn{display:none;position:absolute;top:20px;right:20px;background:#0009;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:#fff;width:48px;height:48px;border-radius:12px;justify-content:center;align-items:center;cursor:pointer;z-index:9999;pointer-events:auto}#menu-btn svg{width:28px;height:28px}@media(max-width:768px){#ui-overlay{padding:1rem;pointer-events:none}#ui-overlay>*{pointer-events:auto}header{position:absolute;top:0;left:0;width:100%;text-align:left;padding:1.5rem;background:transparent;pointer-events:none;z-index:10}header h1{display:block;font-size:1.2rem;color:#000000e6;text-shadow:0 2px 10px rgba(0,0,0,.5)}#status{display:block;font-size:.8rem;color:#ffffffb3;text-shadow:0 1px 5px rgba(0,0,0,.5)}#menu-btn{display:flex;top:1.5rem;right:1.5rem}#controls{position:absolute;bottom:0;left:0;width:100%;margin:0;border-radius:20px 20px 0 0;transform:translateY(110%);visibility:hidden;transition:transform .3s cubic-bezier(.4,0,.2,1),visibility 0s .3s;z-index:100;background:#fffffff2}#controls.active{transform:translateY(0);visibility:visible;transition:transform .3s cubic-bezier(.4,0,.2,1),visibility 0s 0s}}
