*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#1a1a2e;color:#eee;overflow:hidden;height:100vh;width:100vw}#app{display:flex;flex-direction:column;height:100vh;width:100vw}#canvas{flex:1;background:#000;cursor:crosshair;outline:none}#controls{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#16213e;border-top:1px solid #0f3460}.url-bar{display:flex;flex:1;max-width:800px;gap:8px}.url-bar input{flex:1;padding:8px 12px;border:1px solid #0f3460;border-radius:4px;background:#1a1a2e;color:#eee;font-size:14px}.url-bar input:focus{outline:none;border-color:#e94560}.url-bar button,.settings select{padding:8px 16px;border:none;border-radius:4px;background:#e94560;color:#fff;font-size:14px;cursor:pointer;transition:background .2s}.url-bar button:hover{background:#ff6b6b}.settings select{background:#0f3460;border:1px solid #0f3460}.status{position:fixed;top:0;left:0;right:0;bottom:0;background:#1a1a2ef2;display:flex;align-items:center;justify-content:center;z-index:100}.status.hidden{display:none}.status-content{display:flex;flex-direction:column;align-items:center;gap:16px}.spinner{width:48px;height:48px;border:4px solid #0f3460;border-top-color:#e94560;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#status-text{font-size:18px;color:#aaa}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:200}.modal.hidden{display:none}.modal-content{background:#16213e;padding:24px;border-radius:8px;max-width:400px;text-align:center}.modal-content h2{margin-bottom:16px;color:#e94560}.modal-content p{margin-bottom:24px;color:#aaa}.modal-content button{padding:10px 24px;border:none;border-radius:4px;background:#e94560;color:#fff;font-size:14px;cursor:pointer}.landing{position:fixed;top:0;left:0;right:0;bottom:0;background:#1a1a2e;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:50}.landing.hidden{display:none}.landing h1{font-size:48px;margin-bottom:16px;background:linear-gradient(135deg,#e94560,#ff6b6b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing p{font-size:18px;color:#aaa;margin-bottom:32px}.landing button{padding:16px 32px;border:none;border-radius:8px;background:#e94560;color:#fff;font-size:18px;cursor:pointer;transition:transform .2s,background .2s}.landing button:hover{background:#ff6b6b;transform:scale(1.05)}.status.closing .spinner{border-top-color:orange}.status.closing #status-text{color:orange}
