/* Cena 3D (Estúdio): janela por cima do editor */
.c3d{position:fixed;inset:0;z-index:200;display:grid;grid-template-rows:52px minmax(0,1fr);grid-template-columns:minmax(0,1fr);background:var(--e-bg,#0e0b0a);color:var(--e-text,#f4efea);font-family:var(--f-body);font-size:13px;line-height:1.4;
  --e-bg:#0e0b0a;--e-panel:#1a1514;--e-raise:#262019;--e-hover:#312822;--e-sunk:#110e0d;--e-line:rgba(255,255,255,.08);--e-line2:rgba(255,255,255,.16);--e-text:#f4efea;--e-mute:#aea39c;--e-dim:#7f746e;--e-acc:#e8832a;--e-acc2:#f5a65c;--e-ink:#1d0d03;--rl:16px;--rm:10px;--rs:8px}
.c3d[hidden]{display:none}
body.c3d-aberta{overflow:hidden}
.c3d *,.c3d *::before,.c3d *::after{box-sizing:border-box}
.c3d svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.c3d h4{margin:14px 0 6px;font:600 12px/1.2 var(--f-body);color:var(--e-mute);text-transform:uppercase;letter-spacing:.04em}
.c3d h4:first-child{margin-top:0}
.c3-top{display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--e-line);background:var(--e-panel);min-width:0;overflow:hidden}
.c3-top b{font-size:15px}
.c3-dica{color:var(--e-dim);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 0}
.c3-acoes{margin-left:auto;display:flex;gap:8px;flex:none}
.c3d .bt{height:34px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--e-line);border-radius:var(--rm);background:var(--e-raise);color:var(--e-text);font-weight:600;white-space:nowrap;cursor:pointer;font-family:inherit;font-size:13px}
.c3d .bt:hover{background:var(--e-hover)}
.c3d .bt.primary{background:var(--e-acc);border-color:transparent;color:var(--e-ink)}.c3d .bt.primary:hover{background:var(--e-acc2)}
.c3d .bt.small{height:30px;padding:0 10px;font-size:12px}
.c3d .bt.icon{width:34px;padding:0;justify-content:center}
.c3d .bt.danger{color:#ff8a8a}
.c3-body{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:0}
.c3-side{background:var(--e-panel);border-right:1px solid var(--e-line);display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}
.c3-abas{display:flex;border-bottom:1px solid var(--e-line)}
.c3-abas button{flex:1;height:40px;border:0;background:none;color:var(--e-mute);font:600 12px var(--f-body);cursor:pointer;border-bottom:2px solid transparent}
.c3-abas button[aria-selected="true"]{color:var(--e-text);border-bottom-color:var(--e-acc)}
.c3-side>section{overflow:auto;padding:14px}
.c3d input[type=text],.c3d input:not([type]),.c3d select{width:100%;height:34px;padding:0 10px;border:1px solid var(--e-line);border-radius:var(--rs);background:var(--e-sunk);color:var(--e-text);font:600 13px var(--f-body);margin-bottom:8px}
.c3-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.c3-row input{flex:1;margin:0}
.c3-upload{cursor:pointer}
.c3-chips{display:flex;flex-wrap:wrap;gap:6px}
.c3-chips button{height:30px;padding:0 10px;border:1px solid var(--e-line);border-radius:999px;background:var(--e-sunk);color:var(--e-mute);font:600 12px var(--f-body);cursor:pointer}
.c3-chips button:hover{color:var(--e-text);border-color:var(--e-line2)}
.c3-chips button[aria-pressed="true"]{background:var(--e-acc);border-color:transparent;color:var(--e-ink)}
.c3d .sl{display:grid;grid-template-columns:96px 1fr 52px;gap:8px;align-items:center;margin:8px 0;font-size:12px;font-weight:600;color:var(--e-mute)}
.c3d .sl output{text-align:right;color:var(--e-text);font-variant-numeric:tabular-nums;font-size:11px}
.c3d .sl input{width:100%;accent-color:var(--e-acc)}
.c3d .tb-switch{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--e-mute);cursor:pointer;user-select:none;white-space:nowrap;margin:6px 12px 6px 0}
.c3d .tb-switch input{position:absolute;opacity:0;width:0;height:0}
.c3d .tb-switch .sw{width:34px;height:20px;border-radius:999px;background:var(--e-hover);position:relative;transition:background .15s;flex:none}
.c3d .tb-switch .sw::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s}
.c3d .tb-switch input:checked+.sw{background:var(--e-acc)}.c3d .tb-switch input:checked+.sw::after{transform:translateX(14px)}
.c3d .tb-hint{color:var(--e-dim);font-size:12px;line-height:1.45;margin-top:8px}
.c3d .tb-tag{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--e-acc);color:var(--e-ink)}
.c3-lista{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:300px;overflow:auto}
.c3-lista button{display:grid;gap:4px;padding:6px 4px;border:1px solid transparent;border-radius:var(--rs);background:var(--e-sunk);color:var(--e-mute);font:600 10.5px/1.1 var(--f-body);cursor:pointer;text-align:center}
.c3-lista button img{width:40px;height:40px;object-fit:contain;margin:0 auto;image-rendering:pixelated;opacity:.9}
.c3-lista button:hover{border-color:var(--e-acc);color:var(--e-text)}
.c3-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:320px;overflow:auto}
.c3-grid button{display:grid;gap:3px;padding:5px 2px;border:1px solid transparent;border-radius:var(--rs);background:var(--e-sunk);color:var(--e-mute);font:600 10px/1.1 var(--f-body);cursor:pointer;text-align:center;min-width:0}
.c3-grid button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c3-grid button img{width:36px;height:36px;margin:0 auto;image-rendering:auto}
.c3-grid button:hover{border-color:var(--e-acc);color:var(--e-text)}
.c3-grid .tb-hint{grid-column:1/-1}
.c3-lab{display:block;font-size:12px;font-weight:600;color:var(--e-mute);margin:8px 0}
.c3-lab select{margin-top:4px}
.c3-view{position:relative;display:flex;align-items:center;justify-content:center;background:#060504;min-height:0;overflow:hidden}
.c3-view canvas{display:block;outline:none;border-radius:6px;box-shadow:0 0 0 1px var(--e-line),0 20px 60px rgba(0,0,0,.5);touch-action:none;cursor:grab}
.c3-view canvas:active{cursor:grabbing}
.c3-carregando{position:absolute;left:50%;top:14px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--e-panel);border:1px solid var(--e-line2);font-weight:600;font-size:12px}
.c3-carregando span{width:12px;height:12px;border-radius:50%;border:2px solid var(--e-acc);border-right-color:transparent;animation:c3-spin .8s linear infinite}
@keyframes c3-spin{to{transform:rotate(360deg)}}
.c3-acoes .cu{display:none}
.c3-joy{position:absolute;left:14px;bottom:14px;width:104px;height:104px;border-radius:50%;background:rgba(0,0,0,.35);border:2px solid rgba(255,255,255,.25);display:none;touch-action:none;backdrop-filter:blur(4px)}
.c3-joy .knob{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:rgba(255,255,255,.85);box-shadow:0 2px 8px rgba(0,0,0,.4);pointer-events:none}
.c3-sobe-desce{position:absolute;right:14px;bottom:14px;display:none;flex-direction:column;gap:8px}
.c3-sobe-desce button{width:46px;height:46px;border-radius:50%;border:2px solid rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#fff;font-size:16px;touch-action:none;backdrop-filter:blur(4px)}
.c3-dica-toque{position:absolute;left:12px;right:12px;top:12px;padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;line-height:1.4;text-align:center;pointer-events:none}
@media (pointer:coarse){
  .c3-joy,.c3-sobe-desce{display:flex}
  .c3-chips button{height:36px;padding:0 12px}
  .c3-abas button{height:44px}
  .c3-lista{grid-template-columns:repeat(4,1fr)}
  .c3d .bt.small{height:36px}
  .c3d .sl{grid-template-columns:84px 1fr 48px;margin:10px 0}
  .c3d .sl input{height:28px}
  .c3-view canvas{border-radius:0;box-shadow:none}
}
@media (max-width:980px){
  .c3d{grid-template-rows:48px minmax(0,1fr)}
  .c3-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .c3-view{order:-1;aspect-ratio:16/9;width:100%;max-height:52vh;background:#000}
  .c3-side{border-right:0;border-top:1px solid var(--e-line)}
  .c3-side>section{padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .c3-dica{display:none}
  .c3-top{padding:0 8px;gap:8px}
  .c3-top b{font-size:14px}
  .c3-acoes{gap:6px}
  .c3-acoes .lg{display:none}.c3-acoes .cu{display:inline}
  .c3-acoes .bt{height:34px;padding:0 10px;font-size:12px}
  .c3-joy{width:84px;height:84px;left:10px;bottom:10px}
  .c3-joy .knob{width:36px;height:36px;margin:-18px 0 0 -18px}
  .c3-sobe-desce button{width:40px;height:40px}
  .c3-sobe-desce{right:10px;bottom:10px}
}
/* celular deitado: painel estreito ao lado */
@media (max-width:980px) and (orientation:landscape) and (max-height:520px){
  .c3-body{grid-template-columns:240px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
  .c3-view{order:0;aspect-ratio:auto;max-height:none}
  .c3-side{border-top:0;border-right:1px solid var(--e-line)}
}
/* meu mundo */
.c3-mundo-nome{margin:6px 0 8px;font-size:13px}
.c3-mundo-nome span{color:var(--e-mute)}
.c3-xyz label{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--e-mute);font-size:12px}
.c3-xyz input[type=number]{width:84px;height:32px;margin:0;padding:0 8px;border:1px solid var(--e-line);border-radius:var(--rs);background:var(--e-sunk);color:var(--e-text);font:600 13px var(--f-body)}
#c3-mundo-msg{min-height:18px}
.c3-laco{position:absolute;border:1px solid var(--e-acc);background:rgba(232,131,42,.12);pointer-events:none;border-radius:2px}
.c3-laco[hidden]{display:none}
/* estruturas do jogo */
.c3-estr{grid-template-columns:repeat(2,1fr)}
.c3-estr button{font-size:11px;padding:8px 6px;line-height:1.2;display:flex;flex-direction:column;align-items:center;gap:3px}
.c3-estr button .tam{font-size:10px;color:var(--e-dim);font-variant-numeric:tabular-nums}
