digraph stalk_to_plastic {
  bgcolor="#1a1a2e"
  rankdir=TB
  node [fontname="Helvetica" fontsize=11 style=filled shape=box]
  edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]

  subgraph cluster_grow {
    label="GROW" fontcolor="#4CAF50" fontsize=12 fontname="Helvetica Bold"
    color="#4CAF50" style=dashed
    seed [label="hemp seed" fillcolor="#2E7D32" fontcolor="white"]
    field [label="1 acre\n120 days" fillcolor="#388E3C" fontcolor="white"]
    stalk [label="4 tons\ndry stalk" fillcolor="#43A047" fontcolor="white"]
  }

  subgraph cluster_strip {
    label="STRIP" fontcolor="#FF9800" fontsize=12 fontname="Helvetica Bold"
    color="#FF9800" style=dashed
    dec [label="decorticate\nseparate bast & hurd" fillcolor="#E65100" fontcolor="white"]
    bast [label="bast fiber\n~30% of stalk\n77% cellulose" fillcolor="#F57C00" fontcolor="white"]
    hurd [label="hurd (core)\n~70% of stalk\n44% cellulose" fillcolor="#795548" fontcolor="white"]
  }

  subgraph cluster_extract {
    label="EXTRACT" fontcolor="#2196F3" fontsize=12 fontname="Helvetica Bold"
    color="#2196F3" style=dashed
    naoh [label="NaOH bath\n80-90°C\n2-5 hours" fillcolor="#1565C0" fontcolor="white"]
    wash [label="acid wash\nbleach\nfilter" fillcolor="#1976D2" fontcolor="white"]
    cellulose [label="~420 kg\nclean cellulose" fillcolor="#1E88E5" fontcolor="white"]
  }

  subgraph cluster_form {
    label="FORM" fontcolor="#9C27B0" fontsize=12 fontname="Helvetica Bold"
    color="#9C27B0" style=dashed
    mix [label="mix with\nglycerol (15%)" fillcolor="#6A1B9A" fontcolor="white"]
    press [label="hot press\n150-240°C" fillcolor="#7B1FA2" fontcolor="white"]
    plastic [label="~400 kg\nhemp bioplastic" fillcolor="#8E24AA" fontcolor="white"]
  }

  seed -> field [label="plant"]
  field -> stalk [label="harvest"]
  stalk -> dec [label="process"]
  dec -> bast
  dec -> hurd
  bast -> naoh
  hurd -> naoh [style=dashed label="lower yield"]
  naoh -> wash [label="dissolve\nlignin"]
  wash -> cellulose [label="~42%\nrecovery"]
  cellulose -> mix
  mix -> press
  press -> plastic

  loss [label="~60% lost\nlignin, hemicellulose\nwash water" fillcolor="#37474F" fontcolor="#aaaaaa" shape=ellipse]
  wash -> loss [style=dashed color="#555555"]
}
