:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;padding:0;overflow:hidden}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}*{box-sizing:border-box}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:linear-gradient(135deg,#1a1a2e,#16213e);border-bottom:1px solid rgba(59,130,246,.2)}.logo{display:flex;align-items:center;gap:.75rem}.logo svg{color:#3b82f6}.logo h1{font-size:1.5rem;font-weight:600;margin:0;background:linear-gradient(135deg,#3b82f6,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.reset-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#60a5fa;font-size:.875rem;cursor:pointer;transition:all .2s ease}.reset-btn:hover{background:#3b82f633;border-color:#3b82f680}.main{flex:1;display:flex;position:relative;overflow:hidden}.file-upload{flex:1;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#1a1a2e,#16213e);padding:2rem}.upload-content{display:flex;flex-direction:column;align-items:center;padding:3rem 4rem;border:2px dashed rgba(59,130,246,.4);border-radius:16px;background:#3b82f60d;text-align:center;transition:all .3s ease;max-width:500px}.file-upload:hover .upload-content,.upload-content:hover{border-color:#3b82f6b3;background:#3b82f61a}.upload-icon{color:#3b82f6;margin-bottom:1.5rem;opacity:.8}.upload-content h2{font-size:1.5rem;margin:0 0 .5rem;color:#e2e8f0}.upload-content p{margin:0 0 .5rem;color:#94a3b8;font-size:.95rem}.upload-content .formats{font-size:.8rem;color:#64748b;margin-bottom:1.5rem}.upload-content input[type=file]{display:none}.upload-button{display:inline-block;padding:.75rem 2rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:1rem}.upload-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.viewer-container{flex:1;position:relative;display:flex;flex-direction:column}.viewer-container canvas{flex:1}.viewer-controls{position:absolute;top:1rem;left:1rem;display:flex;gap:.5rem;z-index:10}.control-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#1a1a2ecc;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#94a3b8;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.control-btn:hover{background:#3b82f633;color:#60a5fa;border-color:#3b82f680}.control-btn.active{background:#3b82f64d;color:#60a5fa;border-color:#3b82f6}.model-info{position:absolute;top:1rem;right:1rem;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;z-index:10;padding:.75rem 1rem;background:#1a1a2ecc;border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(59,130,246,.2)}.file-name{color:#e2e8f0;font-size:.9rem;font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:#64748b;font-size:.75rem}.viewer-instructions{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);display:flex;gap:1.5rem;padding:.5rem 1rem;background:#1a1a2ecc;border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(59,130,246,.2);z-index:10}.viewer-instructions span{color:#64748b;font-size:.75rem}.footer{padding:.75rem 2rem;background:linear-gradient(135deg,#1a1a2e,#16213e);border-top:1px solid rgba(59,130,246,.2);text-align:center}.footer p{margin:0;color:#64748b;font-size:.85rem}@media(max-width:768px){.header{padding:1rem}.logo h1{font-size:1.25rem}.reset-btn span{display:none}.upload-content{padding:2rem;margin:1rem}.viewer-instructions{flex-wrap:wrap;justify-content:center;gap:.75rem}.model-info{max-width:150px}}
