:root{font-family:Inter,Segoe UI,Roboto,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#f2f2f5;background-color:#050506;font-weight:400;line-height:1.4;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#141626,#050506 60%);color:inherit}#app{height:100vh}.app-shell{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.9fr);gap:16px;height:100%;padding:16px}.viewer-panel{background:#0c0c12d9;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px}.viewer-header .status-line{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:#f2f2f5c7}.canvas-stack{position:relative;flex:1;border-radius:12px;overflow:hidden;background:#050505;border:1px solid rgba(255,255,255,.05)}.canvas-stack canvas{width:100%;height:100%;display:block}.overlay-canvas{position:absolute;top:0;left:0;pointer-events:none}.hidden-video{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none;object-fit:cover;z-index:0}.hidden-three{position:absolute;width:0;height:0;visibility:hidden;pointer-events:none}.control-panel{background:#09090eeb;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:18px;overflow-y:auto}.control-group{display:flex;flex-direction:column;gap:12px}.field-label{display:flex;flex-direction:column;font-size:.85rem;gap:6px}input[type=file]{color:#fffc}.playback{align-items:center}button{border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,#3a3f7a,#1f2240);color:#fff;padding:10px 18px;border-radius:999px;font-size:.95rem;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,opacity .15s}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #2c5cff4d}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.ghost-button{border-style:dashed;background:transparent;color:#ffffffd9}.ghost-button:hover:not(:disabled){box-shadow:none;background:#ffffff0d}input[type=range]{width:100%}.slider-field{display:flex;flex-direction:column;gap:6px}.slider-row{display:flex;justify-content:space-between;font-size:.85rem;color:#fffc}.value-label{font-variant-numeric:tabular-nums;color:#8ed0ff}.toggles label{display:flex;align-items:center;gap:8px}.mesh-group .group-title{font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;color:#fff9}.mesh-list-panel{max-height:200px;overflow-y:auto;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:4px;background:#05050acc}.mesh-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem}.placeholder{margin:0;font-size:.8rem;color:#ffffff80}.status{font-weight:500}.time-readout{font-variant-numeric:tabular-nums;display:flex;gap:6px;align-items:baseline}.mode-switcher{border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.mode-button{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);padding:8px 16px;font-size:.9rem}.mode-button.active{background:linear-gradient(135deg,#3a3f7a,#1f2240);border-color:#3a3f7a99}.mode-button:hover:not(.active){background:#ffffff1a}.edit-panel .group-title{font-size:.95rem;font-weight:500;margin-bottom:8px}.timeline-container{margin:12px 0;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:8px;background:#05050a99}#timeline-canvas{width:100%;height:auto;display:block;border-radius:4px}.edit-controls{display:flex;flex-direction:column;gap:16px}.time-range{display:grid;grid-template-columns:1fr 1fr;gap:12px}.time-range label{display:flex;flex-direction:column;gap:6px;font-size:.85rem}.time-range input[type=number]{background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:6px 10px;color:#fff;font-size:.9rem}.blendshape-filters{display:flex;flex-direction:column;gap:8px}.filter-title{font-size:.85rem;color:#ffffffb3;margin-bottom:4px}.blendshape-filters label{display:flex;align-items:center;gap:8px;font-size:.9rem}.edit-operations,.preview-controls{display:flex;flex-direction:column;gap:8px}.secondary-button{background:#ffffff14;border:1px solid rgba(255,255,255,.15);font-size:.85rem;padding:8px 14px}.secondary-button:hover:not(:disabled){background:#ffffff26;box-shadow:0 4px 12px #6464ff33}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:1200px){.app-shell{grid-template-columns:1fr;height:auto}.control-panel{max-height:50vh}}
