:root{
  --bg:#12121a; --panel:#1c1c28; --panel-2:#262635;
  --ink:#e6e6f0; --muted:#8a8aa0; --accent:#ffcf5c; --line:#33334a;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--ink);background:var(--bg);
}
#app{display:flex;height:100vh}

#panel{
  width:280px;flex:0 0 280px;background:var(--panel);
  border-right:1px solid var(--line);padding:18px 16px;overflow-y:auto;
}
#panel h1{margin:0;font-size:18px;letter-spacing:.5px}
#panel .sub{margin:2px 0 20px;color:var(--muted);font-size:12px}

.modes{display:flex;gap:6px;margin-bottom:16px}
.modes .mode{
  flex:1;background:var(--panel-2);color:var(--muted);border:1px solid var(--line);
  font-size:13px;padding:8px 4px;
}
.modes .mode.on{background:var(--accent);color:#1a1a1a;border-color:var(--accent)}

.blockbar{
  margin-bottom:16px;padding:10px;background:var(--panel-2);
  border:1px solid var(--line);border-radius:8px;
}
.strip{
  display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;min-height:56px;
}
.strip .cell{
  flex:0 0 auto;width:52px;height:52px;border-radius:6px;cursor:pointer;
  background:radial-gradient(120% 120% at 50% 35%,#20202e 0%,#12121a 72%);
  border:1px solid var(--line);image-rendering:pixelated;object-fit:contain;
}
.strip .cell.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.strip-actions{display:flex;gap:4px;margin-top:8px}
.strip-actions button{
  flex:1;min-width:0;font-size:14px;font-weight:400;padding:6px 2px;
  background:var(--panel);color:var(--ink);border:1px solid var(--line);
}
.strip-actions button:hover{border-color:var(--accent)}
.strip-layout{display:flex;gap:6px;align-items:center;margin-top:8px}
.strip-layout select{flex:1}
.strip-layout input[type=range]{flex:0 0 84px}
.strip-dim{margin-top:8px}
.strip-dim label{
  display:flex;align-items:baseline;gap:6px;font-size:10px;color:var(--muted);
  margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px;
}
.strip-hint{margin:8px 0 0;color:var(--muted);font-size:10px;line-height:1.4}

.field{margin-bottom:16px}
.field label{
  display:flex;align-items:baseline;gap:6px;
  font-size:11px;color:var(--muted);margin-bottom:6px;
  text-transform:uppercase;letter-spacing:.5px;
}
.field .val{color:var(--accent);font-weight:700;font-size:13px}
.lock{
  margin-left:auto;background:none;border:none;padding:0 2px;cursor:pointer;
  font-size:12px;line-height:1;opacity:.38;
}
.lock:hover{opacity:.75}
.lock.on{opacity:1}
.actions{display:flex;gap:6px;margin-bottom:8px}
.actions button{flex:1;min-width:0;font-size:12px;padding:8px 4px}
button.wide{width:100%;font-size:13px}
button.toggle{
  background:var(--panel-2);color:var(--ink);border:1px solid var(--line);
}
button.toggle.on{background:var(--accent);color:#1a1a1a;border-color:var(--accent)}
.gallery{
  display:none;position:fixed;inset:0;z-index:100;flex-direction:column;
  background:rgba(12,12,18,.95);padding:16px;
}
.gallery-bar{
  display:flex;align-items:center;gap:10px;color:var(--ink);
  font-size:13px;margin-bottom:12px;
}
.gallery-bar span{margin-right:auto;color:var(--muted)}
.gallery-bar button{font-size:12px;padding:6px 12px}
.gallery-grid{
  display:grid;gap:10px;overflow:auto;padding-bottom:8px;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
}
.thumb{
  width:100%;aspect-ratio:1;object-fit:contain;cursor:pointer;
  background:radial-gradient(120% 120% at 50% 35%,#20202e 0%,#12121a 72%);
  border:1px solid var(--line);border-radius:8px;image-rendering:pixelated;
}
.thumb:hover{border-color:var(--accent)}
.row{display:flex;gap:8px}

input[type=text]{flex:1;min-width:0}
input[type=text],select{
  background:var(--panel-2);border:1px solid var(--line);color:var(--ink);
  border-radius:6px;padding:8px 10px;font:inherit;font-size:13px;
}
select{width:100%;cursor:pointer}
button{
  cursor:pointer;background:var(--accent);color:#1a1a1a;border:none;
  border-radius:6px;padding:8px 12px;font:inherit;font-size:15px;font-weight:700;
}
button:hover{filter:brightness(1.08)}
input[type=range]{width:100%;accent-color:var(--accent)}
input[type=color]{
  width:100%;height:34px;background:var(--panel-2);
  border:1px solid var(--line);border-radius:6px;padding:2px;cursor:pointer;
}
.hint{
  margin-top:24px;color:var(--muted);font-size:11px;line-height:1.5;
  border-top:1px solid var(--line);padding-top:12px;
}

#stage{
  flex:1;display:grid;place-items:center;overflow:auto;
  background:radial-gradient(120% 120% at 50% 32%, #20202e 0%, #12121a 72%);
}
/* the two previews: 1× on top, 4× below — side by side when the stage is wide */
#viewpair{
  display:flex;flex-direction:column;gap:22px;
  align-items:center;justify-content:center;
  width:100%;min-height:100%;padding:16px;box-sizing:border-box;
}
.viewbox{
  margin:0;display:flex;flex-direction:column;align-items:center;gap:6px;
}
.viewbox figcaption{
  font:600 11px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;
  color:#8a8f9a;user-select:none;
}
#view1,#view4{
  image-rendering:pixelated;
  image-rendering:crisp-edges;
}
@media (min-width:1000px){          /* wide enough → put them next to each other */
  #viewpair{flex-direction:row;gap:28px;}
}
