/* Xigu motion study → production surfaces. Geometry never animates the 3D canvas. */
@font-face{font-family:Geist;src:url('./assets/geist-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Geist;src:url('./assets/geist-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Geist;src:url('./assets/geist-600.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--color-bg-canvas:#f4f4f1;--color-bg-panel:#fff;--color-primary:#236de9;--surface:#fff;--surface-solid:#fff;--line-soft:#e3e6e4;--motion-radius:18px;--motion-shadow:0 12px 32px #24323908;--color-fg-primary:#20272b;--color-fg-secondary:#566169;--color-fg-muted:#68747b;--rail-bg:#fafbf9;--input-bg:#fff;--groove-bg:#eff2f1;--pill-bg:#fff;--float-bg:#ffffffed}
:root.dark{--color-bg-canvas:#151a1e;--color-bg-panel:#20272c;--surface:#20272c;--surface-solid:#20272c;--line-soft:#354048;--motion-shadow:0 12px 32px #00000018;--color-fg-primary:#ecf0f2;--color-fg-secondary:#bac4cb;--color-fg-muted:#9aa7b0;--rail-bg:#1b2227;--input-bg:#1b2227;--groove-bg:#192126;--pill-bg:#20272c;--float-bg:#20272cf5}
body{font-family:Geist,"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;background:var(--color-bg-canvas);color:var(--color-fg-primary)}
button,input,select,textarea{font-family:inherit}button{touch-action:manipulation}button svg,.studio-btn svg{width:20px;height:20px;flex:none;vertical-align:middle}button:disabled{cursor:wait;opacity:.65}button:hover{color:var(--color-primary-label)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}svg{stroke-width:1.8}
header{height:76px;padding:0 30px;gap:36px;background:var(--rail-bg);border-bottom:1px solid var(--line-soft);box-shadow:none;backdrop-filter:none}.brand{gap:12px;font-size:15px;font-weight:600}.brand img{width:30px;height:30px}.brand small{font-family:Geist,sans-serif;font-size:9px;letter-spacing:1.8px}.studio-nav{gap:3px}.studio-nav button,.account-actions button{min-height:44px;padding:10px 15px;font-size:13px;font-weight:500;border-radius:12px}.account-actions{gap:8px}.edition{font-family:Geist,sans-serif;font-size:10px;border-color:var(--line-soft);background:var(--surface)}#theme-toggle{display:grid;place-items:center;width:44px!important}#open-search{display:flex;align-items:center;gap:9px;border:1px solid var(--line-soft);background:var(--surface);color:var(--color-fg-secondary);font-weight:400}kbd{font:11px Geist,sans-serif;border:1px solid var(--line-soft);border-radius:5px;padding:3px 5px;color:var(--color-fg-muted);background:var(--surface)}
.motion-tabs{position:relative;isolation:isolate}.motion-tabs>button{position:relative;z-index:1}.motion-indicator{position:absolute;z-index:0;pointer-events:none;border-radius:10px;background:var(--color-primary-subtle)}.motion-tabs button.active,.motion-tabs button[aria-current="page"],.motion-tabs button[aria-pressed="true"]{background:transparent!important;box-shadow:none!important;color:var(--color-primary-label)!important}.tabs.motion-tabs .motion-indicator,.workspace-tabs.motion-tabs .motion-indicator{background:var(--surface);box-shadow:0 2px 6px #24323908}.sex-control.motion-tabs{display:flex;background:var(--groove-bg);border-radius:12px;padding:4px;gap:4px}.sex-control.motion-tabs button{flex:1;border-color:transparent;background:transparent}
#viewer{grid-template-columns:278px minmax(340px,1fr) 310px;height:calc(100dvh - 108px);gap:16px;padding:20px 24px;min-height:620px}#viewer aside{border-radius:var(--motion-radius);background:var(--surface);box-shadow:var(--motion-shadow);border:1px solid var(--line-soft)}#viewer .left-panel,#viewer .right-panel{padding:24px 20px}.panel-heading h1,.panel-heading h2{font-size:20px;font-weight:500;margin:10px 0;letter-spacing:-.6px}.panel-heading p{font-size:12px;line-height:1.75;margin-bottom:22px}.eyebrow{font-family:Geist,sans-serif;font-size:9px;letter-spacing:2px}.tabs{border-radius:12px;padding:4px;height:44px;background:var(--groove-bg);box-shadow:none}.tabs button{min-height:36px;font-size:12px}.layer{border-radius:12px;border-color:var(--line-soft);box-shadow:none;margin-bottom:8px}.layer-head{padding:12px 10px;min-height:58px;gap:8px}.layer-name{font-size:13px;font-weight:500}.layer-name small{font-size:10px;margin-top:4px;line-height:1.5}.region-tree summary{min-height:40px;font-size:12px;padding:11px}.region-tree summary small{font-size:10px}.switch:checked{background:var(--color-primary)}.layer-tip span{color:var(--color-primary)}.structure-row button{min-height:44px;padding-top:9px;padding-bottom:9px}.structure-row.selected{box-shadow:inset 2px 0 var(--color-primary)}.structure-row button small{line-height:1.7}.search-box{height:46px;min-height:46px;border-radius:12px;border-color:var(--line-soft);box-shadow:none}.search-box input{font-size:12px}.search-box>span{width:18px;display:grid;place-items:center}.search-box svg{width:18px;height:18px}.scope-note{font-size:11px;margin:12px 0 18px;line-height:1.65}.list-top{margin-bottom:12px;font-size:11px}.left-bottom{border-color:var(--line-soft);padding-top:20px;margin-top:20px}
#viewer .viewport{border-radius:20px;background:var(--color-bg-canvas);border-color:var(--line-soft);box-shadow:none}.viewport:before{display:none}.view-top{left:26px;right:26px;top:26px}.view-top h2{font-size:22px;font-weight:500;letter-spacing:-.6px;margin:10px 0}.view-top #body-summary{font-size:12px}.model-status{background:var(--surface);border-color:var(--line-soft);padding:8px 12px;box-shadow:none}.model-status span{background:var(--color-primary)}.orientation,.view-modes,.tools{background:var(--float-bg);border:1px solid var(--line-soft);box-shadow:0 4px 15px #24323908;backdrop-filter:none;border-radius:13px}.orientation button{width:40px;height:40px}.view-modes button{min-height:40px;padding:10px 14px}.tools{gap:2px;padding:4px}.tools button{min-width:38px;min-height:38px;display:grid;place-items:center}.tools button svg{width:18px;height:18px}.view-bottom{left:22px;right:22px;bottom:44px}.canvas-help{font-size:10px}.height-scale{opacity:.65}.sex-control button{min-height:40px;font-size:12px}.param{margin-bottom:22px}.param-head{margin-bottom:5px}.param-head label{font-size:12px}.number-wrap{border-color:var(--line-soft);background:var(--surface);border-radius:9px}.number-wrap input{font-family:Geist,sans-serif;font-size:16px;font-weight:500;min-height:34px}.number-wrap span{font-family:Geist,sans-serif}.endpoints{font-size:10px;color:var(--color-fg-muted)}.metric{background:var(--groove-bg);box-shadow:none;border-color:var(--line-soft);border-radius:12px;padding:15px}.metric strong{font-family:Geist,sans-serif;font-size:26px;font-weight:500}.parameter-note{font-size:11px;line-height:1.8;margin:16px 0}.detail-card{border-color:var(--line-soft);margin-top:24px;padding-top:24px}.detail-title h3{font-size:22px;font-weight:500;line-height:1.4}.detail-title #detail-dot{width:7px;height:7px}.detail-card #detail-en{font:11px/1.7 Geist,sans-serif;color:var(--color-fg-muted);word-break:break-word}.detail-card #detail-text{font-size:12px;line-height:1.85}.detail-card #detail-meta{padding:12px;border-radius:12px;font-size:11px;line-height:1.9;background:var(--groove-bg)}.detail-card button{min-height:42px;border-radius:11px}.learning-actions{gap:8px}.learning-actions button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px}.learning-actions svg{width:17px;height:17px}.source-note{line-height:1.9;margin-top:20px;font-size:10px}.outline,.studio-btn{box-shadow:none;border-color:var(--line-soft);background:var(--surface);min-height:42px;border-radius:11px;padding:11px 14px;font-size:12px;font-weight:400}.text-button{min-height:36px}footer{height:32px;background:var(--rail-bg);border-top:1px solid var(--line-soft);color:var(--color-fg-muted);font:10px Geist,sans-serif;padding:0 28px}footer #mesh-status{color:var(--color-fg-secondary)}footer .footer-cross{color:var(--color-primary)}
.motion-range{display:block;height:28px;position:relative;width:100%;margin:6px 0}.motion-range:before,.motion-range:after{content:"";position:absolute;height:4px;top:12px;left:0;border-radius:4px;pointer-events:none}.motion-range:before{width:100%;background:var(--color-border-strong)}.motion-range:after{width:var(--range-progress,0%);background:var(--color-primary)}.motion-range input[type=range]{position:relative;z-index:1;display:block;appearance:none;-webkit-appearance:none;background:transparent!important;margin:0;width:100%;height:28px;padding:0;cursor:ew-resize;touch-action:pan-y;box-shadow:none;border:0}.motion-range input[type=range]::-webkit-slider-runnable-track{height:4px;background:transparent}.motion-range input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:19px;height:19px;margin-top:-7.5px;border:3px solid var(--surface);background:var(--color-primary);border-radius:50%;box-shadow:0 0 0 1px var(--line-soft);transform:translateX(var(--thumb-offset,0px)) scaleX(var(--thumb-stretch,1));transform-origin:center}.motion-range input[type=range]::-moz-range-track{height:4px;background:transparent}.motion-range input[type=range]::-moz-range-thumb{width:14px;height:14px;border:3px solid var(--surface);background:var(--color-primary);border-radius:50%;box-shadow:0 0 0 1px var(--line-soft)}.motion-range input[type=range]:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:10px}.opacity .motion-range{min-width:70px;flex:1}
dialog{border:1px solid var(--line-soft);border-radius:22px;box-shadow:0 24px 70px #20272b1c;background:var(--surface);outline:none}dialog::backdrop{background:#26313b38;backdrop-filter:blur(4px)}#auth-dialog{width:min(1120px,calc(100% - 48px));border-radius:26px}.auth-layout{min-height:690px;grid-template-columns:1fr 1fr}.auth-showcase{padding:38px;background:var(--color-bg-canvas);border-color:var(--line-soft)}.auth-showcase-brand{font-size:15px;font-weight:500;gap:12px}.auth-model{min-height:285px}.auth-model img{max-width:240px;max-height:290px;filter:drop-shadow(0 12px 20px #2537430a)}.auth-showcase-copy h2{font-size:32px;letter-spacing:-1.1px;font-weight:500;line-height:1.4;margin:12px 0}.auth-showcase-copy p{font-size:13px}.auth-data{font-family:Geist,sans-serif;font-size:24px;font-weight:500;gap:32px;margin-top:24px}.auth-data small{font:11px/1.8 Geist,"Microsoft YaHei",sans-serif;margin-top:6px}.auth-form-side{padding:48px}.auth-brand{font:10px Geist,sans-serif;letter-spacing:2px}.auth-form-side h1{font-size:32px;letter-spacing:-1px;font-weight:500;line-height:1.3;margin:16px 0}.auth-form-side>p{font-size:13px;line-height:1.9;margin-bottom:24px}.auth-form-side>p.muted{font-size:10px;line-height:1.9;margin-top:28px}.auth-form-side .studio-links{font-size:12px;margin-top:20px;gap:18px}.studio-form{gap:18px}.studio-form label{font-size:12px;gap:9px}.studio-form input,.studio-form textarea,.studio-form select{border-color:var(--line-soft);box-shadow:none;min-height:46px;border-radius:12px;background:var(--input-bg);color:var(--color-fg-primary);padding:12px 14px;font-size:14px}.studio-form input:hover{border-color:var(--color-primary-border)}.studio-form button{min-height:46px;border-radius:12px;font-size:13px;font-weight:500}.studio-form .primary,.studio-btn.primary{background:var(--color-primary-solid);color:white;box-shadow:none;border-color:var(--color-primary-solid)}#auth-form [type=submit]{justify-self:center;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;border-radius:13px}#auth-form [type=submit] svg{width:20px;height:20px}#auth-error:empty{display:none}.field-password{display:flex;position:relative}.field-password input{padding-right:50px}.field-password button{position:absolute;right:4px;top:4px;width:38px;min-height:38px;border:0;background:transparent;padding:8px;color:var(--color-fg-muted);font-size:11px}.motion-busy{display:inline-flex!important;align-items:center;justify-content:center;opacity:1!important;min-height:44px!important;overflow:hidden;white-space:nowrap}.motion-busy svg{width:22px;height:22px}.busy-ring{width:19px;height:19px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:block;flex:none}
#workspace-page{max-width:1240px;min-height:calc(100dvh - 108px);padding:44px 32px 80px}.page-heading{margin-bottom:32px;align-items:flex-start}.page-heading h1{font-weight:500;font-size:32px;letter-spacing:-1.2px;margin:12px 0;line-height:1.4}.page-heading p{font-size:13px;line-height:1.8}.workspace-tabs{padding:5px;background:var(--groove-bg);box-shadow:none;border-radius:12px;gap:4px;margin:24px 0}.workspace-tabs button{min-height:40px;border:0;border-radius:9px;font-size:13px}.studio-card{border-radius:18px;border:1px solid var(--line-soft);padding:28px;background:var(--surface);box-shadow:var(--motion-shadow)}.cards{gap:20px}.studio-card h2{font-size:20px;font-weight:500;letter-spacing:-.5px}.studio-card .body{font-size:14px;line-height:1.9}.studio-card .status{font:10px Geist,sans-serif;padding:6px 10px;border-radius:6px}.studio-card .muted{line-height:1.8}.card-actions{gap:10px;margin-top:20px}.table-wrap{border:1px solid var(--line-soft);border-radius:18px;box-shadow:var(--motion-shadow)}table{font-size:13px}th,td{padding:18px 20px;border-color:var(--line-soft)}th{font-size:11px;font-weight:400;background:var(--groove-bg)}tbody tr:hover{background:var(--color-primary-subtle)}.empty{padding:38px;border-radius:18px;border-color:var(--line-soft);background:var(--surface);font-size:13px;line-height:1.9;text-align:center}.page-loading{height:160px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--color-fg-muted);font-size:13px}.page-loading .busy-ring{color:var(--color-primary)}
#toast{display:flex;align-items:center;gap:12px;max-width:min(540px,calc(100% - 32px));padding:16px 18px;bottom:52px;border-radius:16px;background:#20272b;color:#fff;border:0;box-shadow:0 10px 30px #20272b20;backdrop-filter:none;font-size:13px;line-height:1.65}#toast>svg{width:22px;height:22px;flex:none;color:#a9c9ff}#toast>span{overflow-wrap:anywhere}#toast button{min-width:32px;min-height:32px;color:#fff;background:transparent;border:0;border-radius:8px;padding:6px;margin-left:8px}#toast button svg{width:17px;height:17px}
#search-dialog{width:min(680px,calc(100% - 32px));padding:0;max-height:min(620px,85dvh);overflow:hidden;position:fixed}.command-head{display:flex;align-items:center;gap:14px;padding:24px 26px;border-bottom:1px solid var(--line-soft)}.command-head>svg{width:23px;height:23px;flex:none;color:var(--color-fg-muted)}.command-head input{min-width:0;flex:1;border:0;background:transparent;font-size:20px;letter-spacing:-.4px;outline:none;color:var(--color-fg-primary);height:36px}.command-head input:focus-visible{outline:none}.command-head:focus-within{box-shadow:inset 0 -2px var(--color-primary)}.command-head button{display:grid;place-items:center;min-height:36px;min-width:36px;padding:8px;border:1px solid var(--line-soft);border-radius:9px}.command-meta{display:flex;align-items:center;justify-content:space-between;padding:18px 26px 10px;font-size:11px;color:var(--color-fg-muted)}#command-results{padding:0 12px 12px;max-height:360px;overflow:auto;min-height:120px}#command-results>button{display:flex;align-items:center;gap:14px;width:100%;padding:14px;border:0;border-radius:12px;background:transparent;text-align:left;min-height:74px}#command-results>button[aria-selected=true]{background:var(--color-primary-subtle)}.result-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border:1px solid var(--line-soft);border-radius:11px;background:var(--surface);color:var(--color-primary)}.result-icon svg{width:20px;height:20px}#command-results strong{display:block;color:var(--color-fg-primary);font-size:15px;font-weight:500}#command-results small{display:block;color:var(--color-fg-muted);font-size:11px;margin-top:6px;line-height:1.6}#command-results>button>svg{width:18px;height:18px;margin-left:auto;color:var(--color-primary);flex:none}.command-footer{border-top:1px solid var(--line-soft);padding:16px 26px;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--color-fg-muted)}.command-footer kbd{margin-right:4px}.command-empty{padding:28px 20px;line-height:1.8}.command-empty strong{font-weight:500}.command-empty p{font-size:13px;color:var(--color-fg-muted)}#confirm-dialog h2{font-size:23px;font-weight:500;letter-spacing:-.5px}#confirm-dialog p{font-size:14px;line-height:1.9}#confirm-dialog .card-actions{justify-content:flex-end}
@media(min-width:1700px){#viewer{grid-template-columns:300px minmax(340px,1fr) 330px;padding:24px 30px;gap:20px}#viewer .left-panel,#viewer .right-panel{padding:28px 24px}}
@media(max-width:1250px){header{padding:0 20px;gap:18px}.edition{display:none}.account-actions #open-search>span{display:none}#viewer{grid-template-columns:246px minmax(280px,1fr) 272px;gap:10px;padding:14px}#viewer .left-panel,#viewer .right-panel{padding:20px 16px}.view-top h2{font-size:19px}.studio-nav button,.account-actions button{padding:10px 12px}.auth-form-side{padding:36px}}
@media(max-width:950px){header{height:auto;min-height:76px;flex-wrap:wrap;padding:14px 18px;gap:12px}.studio-nav{order:3;flex-basis:100%;justify-content:center}.account-actions{margin-left:auto}.brand{font-size:14px}.brand small{font-size:8px}#viewer{height:auto;min-height:0;grid-template-columns:240px minmax(250px,1fr);gap:12px;padding:14px}#viewer .right-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}.right-panel .panel-heading,.right-panel fieldset,.right-panel #parameters,.right-panel .metric,.right-panel .parameter-note,.right-panel #reset-body{grid-column:1}.right-panel .detail-card{grid-column:2;grid-row:1/7;margin:0;padding-top:0;border:0}.right-panel .source-note{grid-column:1/-1}.auth-layout{min-height:640px}.auth-showcase{padding:28px}.auth-form-side{padding:30px}.auth-showcase-copy h2{font-size:27px}.auth-model img{max-height:240px}.auth-model{min-height:240px}}
@media(max-width:650px){header{padding:12px;gap:10px}.brand{font-size:12px;gap:8px}.brand img{width:25px;height:25px}.brand small{font-size:7px}.account-actions{gap:2px}.account-actions #open-search kbd{display:none}.account-actions button{padding:8px;min-width:38px;min-height:40px}.account-actions #theme-toggle{width:38px!important}.account-actions #account-name{max-width:72px;overflow:hidden;text-overflow:ellipsis}.studio-nav button{flex:1;font-size:12px}.studio-nav{width:100%}#viewer{display:flex;flex-direction:column;padding:10px;gap:12px}#viewer .viewport{order:0;min-height:530px;height:68dvh}#viewer .left-panel{order:1;max-height:560px}#viewer .right-panel{order:2;display:block;max-height:none}.right-panel .detail-card{margin-top:24px;padding-top:24px;border-top:1px solid var(--line-soft)}.view-top{top:20px;left:18px;right:18px}.view-top h2{font-size:18px}.view-top #body-summary{font-size:10px}.model-status{font-size:9px;padding:6px 9px}.height-scale{left:18px}.view-bottom{left:12px;right:12px;bottom:44px}.view-modes button{padding:9px;font-size:10px}.tools button{min-width:30px;min-height:34px}.canvas-help{font-size:9px}footer{height:auto;min-height:36px;padding:8px 14px;gap:8px;font-size:9px;flex-wrap:wrap}footer>span:last-child{display:none}#auth-dialog{width:calc(100% - 24px);border-radius:20px;max-height:calc(100dvh - 24px)}.auth-layout{display:block;min-height:0}.auth-showcase{display:none}.auth-form-side{padding:32px 24px}.auth-form-side h1{font-size:28px}.auth-form-side>p{font-size:12px}.auth-form-side>p.muted{font-size:10px}.auth-form-side .studio-links{gap:12px;font-size:11px}#workspace-page{padding:30px 16px 70px}.page-heading{gap:12px;flex-wrap:wrap}.page-heading h1{font-size:28px}.page-heading .studio-btn{font-size:11px}.workspace-tabs{width:100%}.workspace-tabs button{flex:1;padding:8px;font-size:12px}.studio-card{padding:22px}.cards{grid-template-columns:1fr}.command-head{padding:20px 18px;gap:10px}.command-head input{font-size:16px}.command-meta{padding:16px 18px 10px;font-size:10px}.command-footer{padding:14px 18px;font-size:10px}#command-results{max-height:50dvh}.command-footer span:first-child{max-width:75%}#toast{bottom:18px;font-size:12px}#confirm-dialog{padding:24px;width:calc(100% - 32px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.motion-range input{--thumb-offset:0px!important;--thumb-stretch:1!important}}

#toast{translate:-50% 0;transform:none}#toast[data-tone=error]>svg{color:#ffb6b0}button,input,summary{transition:none}

.switch:after,.atlas-layer .chevron{transition:none}.switch{--switch-offset:0px}.switch:after{left:3px!important;transform:translateX(var(--switch-offset,0px)) scaleX(var(--switch-stretch,1))}.switch:checked{--switch-offset:13px}.motion-tabs>button{white-space:nowrap}

#auth-form .motion-busy{min-height:52px!important;height:52px}

.chevron svg{width:14px;height:14px}.region-tree>summary:before{content:none}.region-tree>summary>svg{width:12px;height:12px;flex:none;margin-right:4px;transform:rotate(-90deg)}.region-tree[open]>summary>svg{transform:rotate(0deg)}.layer-tip>span svg{width:17px;height:17px}#reset-body{display:flex;align-items:center;gap:7px}#reset-body svg{width:16px;height:16px}
