.tstudio{--tst-mono:"Fira Code",ui-monospace,SFMono-Regular,Menlo,monospace}.forge3d-boot{align-items:center;background:var(--bg);color:var(--muted);display:flex;font-size:13px;height:100%;justify-content:center}.tstudio-sheen{animation:tst-sheen 1.9s linear infinite;background:linear-gradient(115deg,transparent 30%,var(--tk-sheen) 50%,transparent 70%);background-size:250% 100%}.tstudio-spin{animation:tst-spin .9s linear infinite}@keyframes tst-spin{to{transform:rotate(1turn)}}@keyframes tst-sheen{to{background-position:-250% 0}}.tstudio-indet{animation:tst-indet 1.45s cubic-bezier(.45,0,.35,1) infinite}.tstudio-breathe{animation:tst-breathe 2.4s ease-in-out infinite}.tstudio-rise{animation:tst-rise .34s cubic-bezier(.22,1,.36,1) both}.tstudio-reveal{animation:tst-reveal .5s cubic-bezier(.22,1,.36,1) both}.tstudio-busy-sheen{animation:tst-sheen 1.5s linear infinite;background:linear-gradient(115deg,transparent 34%,rgb(255 255 255/26%) 50%,transparent 66%);background-size:250% 100%}@keyframes tst-indet{0%{left:-38%}to{left:100%}}@keyframes tst-breathe{0%,to{opacity:.5}50%{opacity:1}}@keyframes tst-rise{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}@keyframes tst-reveal{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}.tstudio-ken{animation:tst-ken var(--tst-loop,12s) ease-in-out infinite}.tstudio-bar{animation:tst-bar var(--tst-loop,12s) linear infinite}.tstudio-drop{animation:tst-drop 5.6s ease-in-out infinite}.tstudio-pick{animation:tst-pick 4.4s ease-in-out infinite}.tstudio-wave{animation:tst-wave var(--tst-dur,1.2s) ease-in-out var(--tst-delay,0s) infinite}.tstudio-blink{animation:tst-blink var(--tst-dur,3s) ease-in-out var(--tst-delay,0s) infinite}.tstudio-fade{animation:tst-fade .4s ease both}.tstudio-pop{animation:tst-pop .3s ease both}@keyframes tst-ken{0%{transform:scale(1.06) translate(0)}50%{transform:scale(1.16) translate(-2.2%,-1.6%)}to{transform:scale(1.06) translate(0)}}@keyframes tst-bar{0%{width:4%}to{width:100%}}@keyframes tst-drop{0%,to{transform:rotate(-7deg) translate(0)}50%{transform:rotate(-4deg) translate(6%,-9%)}}@keyframes tst-pick{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4%) scale(1.03)}}@keyframes tst-wave{0%,to{transform:scaleY(.28)}50%{transform:scaleY(1)}}@keyframes tst-blink{0%,to{opacity:.35}50%{opacity:1}}@keyframes tst-fade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes tst-pop{0%{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tstudio-bar,.tstudio-blink,.tstudio-breathe,.tstudio-busy-sheen,.tstudio-drop,.tstudio-fade,.tstudio-indet,.tstudio-ken,.tstudio-pick,.tstudio-pop,.tstudio-reveal,.tstudio-rise,.tstudio-sheen,.tstudio-spin,.tstudio-wave{animation:none}.tstudio-bar{width:100%}.tstudio-indet{left:0;opacity:.55;width:100%}}.forge3d-modelbtn{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);color:inherit;cursor:pointer;display:flex;font:inherit;font-size:13px;gap:8px;justify-content:space-between;padding:9px 12px;width:100%}.forge3d-modelbtn:hover{border-color:var(--line-strong)}.forge3d-slider{align-items:center;display:flex;width:100%}.forge3d-slider input[type=range]{-webkit-appearance:none;appearance:none;background:var(--tk-line-3);border-radius:99px;height:3px;width:100%}.forge3d-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--tk-gold);border-radius:50%;cursor:pointer;height:13px;width:13px}.forge3d-slider input[type=range]::-moz-range-thumb{background:var(--tk-gold);border:0;border-radius:50%;cursor:pointer;height:13px;width:13px}.viewer3d-canvas canvas{display:block;height:100%!important;width:100%!important}.forge3d-float{animation:forge3d-float 6s ease-in-out infinite}@keyframes forge3d-float{0%,to{transform:translateY(-5px) rotate(-6deg)}50%{transform:translateY(5px) rotate(6deg)}}.forge3d-striptile.pending,.forge3d-tile.pending .forge3d-tilemedia{animation:forge3d-tileshimmer 1.8s ease-in-out infinite;background:linear-gradient(100deg,var(--tk-sunken) 20%,color-mix(in srgb,var(--tk-gold) 12%,var(--tk-sunken)) 50%,var(--tk-sunken) 80%);background-size:250% 100%}@keyframes forge3d-tileshimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.forge3d-tilemedia img{height:100%;object-fit:cover;width:100%}.forge3d-spinner,.viewer3d-spinner{animation:forge3d-spin .9s linear infinite;border-radius:50%;border:2px solid var(--tk-line-3);border-top-color:var(--tk-gold);display:inline-block;height:18px;width:18px}.forge3d-spinner.lg{height:26px;width:26px}@keyframes forge3d-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.forge3d-float,.forge3d-spinner,.forge3d-striptile.pending,.forge3d-tile.pending .forge3d-tilemedia,.viewer3d-spinner{animation:none}}.forge3d-stagefloat{animation:forge3d-stagefloat 7s ease-in-out infinite}@keyframes forge3d-stagefloat{0%,to{transform:translateY(-6px)}50%{transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.forge3d-stagefloat{animation:none}}.guest-screen{--au-bg:#0e0f11;--au-panel:#16181c;--au-fg:#e9eaec;--au-muted:#9aa0a8;--au-border:#2a2e35;--au-gold:#c9a24a}:root.theme-light .guest-screen,:root[data-theme=light] .guest-screen{--au-bg:#f4efe4;--au-panel:#fbf8f1;--au-fg:#201a12;--au-muted:#6d6353;--au-border:#ded3bf}.guest-auth{animation:guest-auth-in .32s cubic-bezier(.2,.8,.3,1) both}@keyframes guest-auth-in{0%{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.guest-auth{animation:none}}.guest-auth .auth-screen.auth-embedded{position:static;width:calc(100% / .75);height:auto;min-height:0;padding:34px 16px 40px;overflow:visible;background:none}.guest-auth .auth-screen.auth-embedded:after,.guest-auth .auth-screen.auth-embedded:before{content:none}@media (max-width:860px){.guest-auth{animation-name:guest-auth-drop}@keyframes guest-auth-drop{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}}@media (max-width:640px){.guest-screen.with-auth .guest-body{flex-direction:column;overflow:hidden}.guest-screen.with-auth .guest-auth{animation:none;border:0;flex:1;min-height:0;overflow:hidden;position:relative}.guest-screen.with-auth .auth-screen.auth-embedded{align-items:flex-start;display:flex;height:100%;justify-content:center;max-width:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior-x:none;width:100%;padding:calc(24px + env(safe-area-inset-top, 0px)) calc(24px + env(safe-area-inset-right, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) calc(24px + env(safe-area-inset-left, 0px));padding-top:calc(60px + env(safe-area-inset-top, 0px))}.guest-screen.with-auth .guest-auth-back{align-items:center;background:none;border:0;color:var(--au-fg);cursor:pointer;display:flex;height:44px;justify-content:center;left:max(env(safe-area-inset-left,0px),10px);padding:0;position:absolute;top:max(env(safe-area-inset-top,0px),10px);width:44px;z-index:2;-webkit-tap-highlight-color:transparent}.guest-screen.with-auth .guest-auth-back svg{height:26px;width:26px}.guest-screen.with-auth .guest-auth-back:active{opacity:.55}}.settings-hint{color:var(--muted);font-size:12px;line-height:1.5;margin:10px 0 0}.plugin-error{color:var(--coral-ink)}.plugin-icon{align-items:center;border-radius:7px;color:#fff;display:inline-flex;flex:0 0 auto;justify-content:center}.plugin-icon svg{width:60%;height:60%}.plugin-icon-sm{width:28px;height:28px}.plugin-icon-md{width:34px;height:34px;border-radius:8px}.plugin-icon-lg{width:46px;height:46px;border-radius:11px}.plugin-list{display:flex;flex-direction:column}.plugin-row{align-items:center;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);cursor:pointer;display:flex;gap:12px;padding:12px 4px;text-align:left;transition:background .14s ease;width:100%}.plugin-row:last-child{border-bottom:0}.plugin-row:hover{background:var(--surface-2)}.plugin-row-name{align-items:center;display:flex;flex:1;font-size:13px;font-weight:500;gap:8px;min-width:0}.plugin-row-plain{align-items:center;color:var(--muted);display:inline-flex;flex:0 0 auto;height:28px;justify-content:center;width:28px}.plugin-row-plain svg{width:19px;height:19px}.plugin-row-chevron{width:15px;height:15px;color:var(--faint);flex:0 0 auto}.plugin-mode-tag,.plugin-off-tag{background:var(--surface-3);border-radius:999px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.02em;padding:2px 7px;text-transform:uppercase}.plugin-mode-tag.on{background:color-mix(in srgb,var(--toggle-active) 22%,transparent);color:var(--toggle-active)}.plugin-back{align-items:center;background:transparent;border:0;color:var(--muted);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:5px;margin:0 0 10px;padding:0}.plugin-back:hover{color:var(--ink)}.plugin-back svg{width:15px;height:15px}.plugin-detail-head{align-items:center;display:flex;gap:13px;margin-bottom:14px}.plugin-detail-name{font-size:15px;font-weight:600;margin:0 0 3px}.plugin-detail-by{color:var(--muted);font-size:12px;margin:0}.plugin-caps{display:grid;gap:8px;list-style:none;margin:0 0 18px;padding:0}.plugin-caps li{align-items:center;color:var(--ink-soft);display:flex;font-size:12.5px;gap:9px}.plugin-caps svg{width:14px;height:14px;color:var(--toggle-active);flex:0 0 auto}.directory-modal{width:min(1020px,100%);max-height:min(760px,calc(100vh / var(--app-zoom) - 40px))}.directory-head{border-bottom:0;padding:18px 16px 6px 22px}.directory-title{font-size:21px;font-weight:600;letter-spacing:-.01em}.directory-shell{min-height:0}.directory-nav{background:transparent;border-right:0;flex:0 0 196px;padding:8px 12px 16px}.directory-panel{display:flex;flex:1;flex-direction:column;gap:14px;min-width:0;padding:4px 22px 20px}.directory-search{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);display:flex;gap:9px;padding:0 12px;transition:border-color .14s ease,box-shadow .14s ease}.directory-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.directory-search>svg{width:16px;height:16px;color:var(--muted);flex:0 0 auto}.directory-search-input{background:transparent;border:0;color:var(--ink);flex:1;font-size:13px;min-width:0;outline:none;padding:10px 0}.directory-search-input::placeholder{color:var(--faint)}.directory-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.directory-tabs{display:flex;gap:4px}.directory-tab{background:transparent;border:0;border-radius:var(--r-sm);color:var(--muted);cursor:pointer;font-size:13px;font-weight:500;padding:6px 13px;transition:background .14s ease,color .14s ease}.directory-tab:hover{color:var(--ink)}.directory-tab.active{background:var(--surface-3);color:var(--ink)}.directory-actions{align-items:center;display:flex;gap:8px}.directory-menu-wrap{position:relative}.directory-add-btn,.directory-menu-btn{align-items:center;background:transparent;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-soft);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:500;gap:6px;padding:7px 14px;transition:background .14s ease,border-color .14s ease,color .14s ease}.directory-add-btn:hover,.directory-menu-btn:hover{background:var(--surface-2);color:var(--ink)}.directory-menu-btn.on{border-color:var(--accent);color:var(--accent)}.directory-menu-btn svg{width:14px;height:14px}.directory-add-btn{padding:7px}.directory-add-btn svg{width:16px;height:16px}.directory-menu{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:2px;max-height:280px;min-width:190px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:5}.directory-menu-item{background:transparent;border:0;border-radius:var(--r-sm);color:var(--ink-soft);cursor:pointer;font-size:12.5px;padding:7px 10px;text-align:left;white-space:nowrap}.directory-menu-item:hover{background:var(--surface-2);color:var(--ink)}.directory-menu-item.on{color:var(--accent);font-weight:600}.directory-add-menu{gap:8px;padding:12px;width:260px}.directory-add-title{font-size:12.5px;font-weight:600;margin:0}.directory-add-error{color:var(--coral-ink);font-size:11.5px;margin:0}.directory-grid{align-content:start;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));overflow-y:auto;padding:2px 2px 4px}.directory-card{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:9px;padding:15px;transition:border-color .14s ease,background .14s ease}.directory-card:hover{border-color:var(--line-strong)}.directory-card.installed{border-color:color-mix(in srgb,var(--toggle-active) 45%,var(--line))}.directory-card-head{align-items:flex-start;display:flex;gap:11px}.directory-card-id{flex:1;min-width:0}.directory-card-id h3{color:var(--ink);font-size:13.5px;font-weight:600;letter-spacing:0;margin:0 0 3px;text-transform:none}.directory-card-id p{align-items:center;color:var(--muted);display:flex;font-size:11.5px;gap:2px;margin:0}.directory-dot{color:var(--faint);margin:0 3px}.directory-installs{align-items:center;display:inline-flex;gap:3px}.directory-installs svg{width:11px;height:11px}.directory-install{align-items:center;background:transparent;border:0;border-radius:999px;color:var(--muted);cursor:pointer;display:inline-flex;flex:0 0 auto;height:28px;justify-content:center;transition:background .14s ease,color .14s ease;width:28px}.directory-install:hover{background:var(--surface-3);color:var(--ink)}.directory-install.on{color:var(--toggle-active)}.directory-install svg{width:16px;height:16px}.directory-card-copy{color:var(--muted);display:-webkit-box;font-size:12px;line-height:1.5;margin:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.directory-card-tag{align-self:flex-start;background:var(--surface-3);border-radius:999px;color:var(--muted);font-size:10.5px;font-weight:500;margin-top:auto;padding:3px 9px}.directory-empty{align-items:center;color:var(--muted);display:flex;flex-direction:column;gap:12px;grid-column:1/-1;justify-content:center;min-height:220px;text-align:center}.directory-empty svg{width:32px;height:32px;opacity:.5}.directory-empty p{font-size:12.5px;margin:0}@media (max-width:720px){.directory-head{padding:14px 10px 4px 16px}.directory-title{font-size:18px}.directory-panel{padding:4px 16px 16px}.directory-nav{padding:8px 10px}.directory-grid{grid-template-columns:1fr}}.media-menu{bottom:calc(100% + 8px);left:0;min-width:236px}.media-menu button.selected{color:var(--accent)}.menu button .menu-chevron{color:var(--faint);height:14px!important;margin-left:auto;width:14px!important}.media-menu-head{align-items:center;display:flex;gap:2px}.media-menu-head .menu-label{margin:4px 0 2px}.media-menu .media-back{align-items:center;background:transparent;border:0;border-radius:var(--r-xs);color:var(--muted);cursor:pointer;display:inline-flex;flex:0 0 auto;height:24px;justify-content:center;padding:0;width:24px}.media-menu .media-back:hover{background:var(--surface-2);color:var(--ink)}.media-menu .media-back svg{width:15px;height:15px}.media-field{display:grid;gap:5px;padding:6px 10px 4px}.media-field>span{color:var(--faint);font-size:11px;font-weight:500}.media-field select{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-size:12.5px;padding:7px 9px;width:100%}.media-field select:focus{border-color:var(--accent);outline:none}.media-menu-hint{color:var(--muted);font-size:11.5px;line-height:1.45;margin:6px 10px 4px;max-width:220px;white-space:normal}.gen-switch-sm{width:32px;height:18px}.gen-switch-sm .gen-switch-knob{width:14px;height:14px}.gen-switch-sm.on .gen-switch-knob{transform:translateX(14px)}.model-menu{min-width:232px}.model-menu .model-back{align-items:center;background:transparent;border:0;border-radius:var(--r-xs);color:var(--ink);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:7px;padding:8px 10px;width:100%}.model-menu .model-back:hover{background:var(--surface-2)}.model-menu .model-back svg{width:15px;height:15px;color:var(--muted)}.model-scroll{display:flex;flex-direction:column;gap:1px;max-height:320px;overflow-y:auto}.model-count{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums;margin-left:auto}.model-menu .model-count+.menu-chevron{margin-left:0}.model-menu button.model-free>span:first-of-type{color:var(--toggle-active);font-weight:600}.model-menu button.model-free .model-count{color:var(--toggle-active)}