digraph product_catalog {
  bgcolor="#1a1a2e"
  rankdir=TB
  node [fontname="Helvetica" fontsize=10 style=filled shape=box]
  edge [style=invis]

  label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">product catalog: three categories</FONT></B>>
  labelloc=t

  subgraph cluster_kitchen {
    label="KITCHEN &amp; DINING" fontcolor="#FF9800" fontsize=11 fontname="Helvetica Bold"
    color="#FF9800" style=dashed

    bowls [label="bowls\n15 cm, 80g\n20% glycerol" fillcolor="#E65100" fontcolor="white"]
    plates [label="plates\n22 cm, 120g\n15% glycerol" fillcolor="#F57C00" fontcolor="white"]
    cups [label="cups\n250 mL, 60g\n20% glycerol" fillcolor="#FF9800" fontcolor="white"]
    trivets [label="trivets\n18 cm, 150g\n15% glycerol" fillcolor="#FFA726" fontcolor="white"]
    bowls -> plates -> cups -> trivets
  }

  subgraph cluster_garden {
    label="GARDEN &amp; GROWING" fontcolor="#4CAF50" fontsize=11 fontname="Helvetica Bold"
    color="#4CAF50" style=dashed

    pots [label="plant pots\n10-15 cm, 90g\n15% glycerol" fillcolor="#2E7D32" fontcolor="white"]
    trays [label="seed trays\n30x20 cm, 200g\n15% glycerol" fillcolor="#388E3C" fontcolor="white"]
    labels [label="plant labels\n12x3 cm, 10g\n15% glycerol" fillcolor="#43A047" fontcolor="white"]
    pots -> trays -> labels
  }

  subgraph cluster_storage {
    label="STORAGE &amp; ORGANIZATION" fontcolor="#8E24AA" fontsize=11 fontname="Helvetica Bold"
    color="#8E24AA" style=dashed

    lidbox [label="lidded boxes\n15x15x8 cm, 180g\n20% glycerol" fillcolor="#6A1B9A" fontcolor="white"]
    organizer [label="desk organizers\n25x10x8 cm, 160g\n15% glycerol" fillcolor="#7B1FA2" fontcolor="white"]
    lidbox -> organizer
  }

  lifespan [label="all products:\n3-5 years daily use\nbiodegrade in hot compost\n60-70C, 12-24 weeks" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]

  care [label="care: hand wash\ndo NOT dishwasher >60C\ndo NOT microwave\ndo NOT soak overnight" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}
